1 /* Created by Artisteer v4.1.0.59688 */
2 /*jshint forin:true, noarg:true, noempty:true, eqeqeq:true, bitwise:true, strict:true, undef:true, curly:false, browser:true, jquery:false */
5 var responsiveDesign = {
11 responsive: (function ($) {
15 this.windowWidth = $(window).width();
16 var triggerEvent = false;
18 var isRespVisible = $("#art-resp").is(":visible");
19 if (isRespVisible && !this.isResponsive) {
20 html.addClass("responsive").removeClass("desktop");
21 this.isResponsive = true;
22 this.isDesktop = false;
24 } else if (!isRespVisible && !this.isDesktop) {
25 html.addClass("desktop").removeClass("responsive responsive-tablet responsive-phone");
26 this.isResponsive = this.isTablet = this.isPhone = false;
27 this.isDesktop = true;
31 if (this.isResponsive) {
32 if ($("#art-resp-t").is(":visible") && !this.isTablet) {
33 html.addClass("responsive-tablet").removeClass("responsive-phone");
37 } else if ($("#art-resp-m").is(":visible") && !this.isPhone) {
38 html.addClass("responsive-phone").removeClass("responsive-tablet");
39 this.isTablet = false;
46 $(window).trigger("responsive", this);
49 $(window).trigger("responsiveResize", this);
52 initialize: (function ($) {
55 $("<div id=\"art-resp\"><div id=\"art-resp-m\"></div><div id=\"art-resp-t\"></div></div>").appendTo("body");
57 $(window).resize(function () {
58 clearTimeout(resizeTimeout);
59 resizeTimeout = setTimeout(function () { responsiveDesign.responsive(); }, 25);
61 $(window).trigger("resize");
66 function responsiveAbsBg(responsiveDesign, el, bg) {
71 var desktopBgTop = bg.attr("data-bg-top");
72 var desktopBgHeight = bg.attr("data-bg-height");
74 if (responsiveDesign.isResponsive) {
75 if (typeof desktopBgTop === "undefined" || desktopBgTop === false) {
76 bg.attr("data-bg-top", bg.css("top"));
77 bg.attr("data-bg-height", bg.css("height"));
80 var elTop = el.offset().top;
81 var elHeight = el.outerHeight();
82 bg.css("top", elTop + "px");
83 bg.css("height", elHeight + "px");
84 } else if (typeof desktopBgTop !== "undefined" && desktopBgTop !== false) {
85 bg.css("top", desktopBgTop);
86 bg.css("height", desktopBgHeight);
87 bg.removeAttr("data-bg-top");
88 bg.removeAttr("data-bg-height");
92 var responsiveImages = (function ($) {
94 return function (responsiveDesign) {
95 $("img[width]").each(function () {
96 var img = $(this), newWidth = "", newMaxWidth = "", newHeight = "";
97 if (responsiveDesign.isResponsive) {
100 newMaxWidth = "100%";
102 var widthAttr = img.attr("width");
103 if (widthAttr !== null && typeof (widthAttr) === "string" && widthAttr.indexOf("%") === -1) {
105 newMaxWidth = parseInt($.trim(widthAttr), 10) + "px";
108 img.css("width", newWidth).css("max-width", newMaxWidth).css("height", newHeight);
113 var responsiveVideos = (function ($) {
115 return function (responsiveDesign) {
116 $("iframe,object,embed").each(function () {
118 var container = obj.parent(".art-responsive-embed");
119 if (responsiveDesign.isResponsive) {
120 if (container.length !== 0)
122 container = $("<div class=\"art-responsive-embed\">").insertBefore(obj);
123 obj.appendTo(container);
124 } else if (container.length > 0) {
125 obj.insertBefore(container);
132 var responsiveTextblocks = (function ($) {
134 return function (slider, responsiveDesign) {
135 slider.find(".art-textblock").each(function () {
136 if (parseInt(slider.attr("data-width"), 10) === 0) {
140 var c = slider.width() / slider.attr("data-width");
147 if (responsiveDesign.isResponsive) {
148 var tbHeight = parseInt(tb.css("height"), 10);
149 var tbWidth = parseInt(tb.css("width"), 10);
150 var tbTop = parseInt(tb.css("top"), 10);
151 var tbMargin = parseInt(tb.css("margin-left"), 10);
152 tb.add(tb.children()).css({
153 "height": tbHeight * c,
156 tb.css("top", tbTop * c);
157 tb.attr("style", function (i, s) { return s + "margin-left: " + (tbMargin * c) + "px !important"; });
163 var responsiveSlider = (function ($) {
165 return function (responsiveDesign) {
166 $(".art-slider").each(function () {
169 responsiveTextblocks(s, responsiveDesign);
171 if (!responsiveDesign.isResponsive) {
172 s.removeAttr("style");
177 var initialWidth = s.attr("data-width");
178 var initialHeight = s.attr("data-height");
179 var c = s.width() / initialWidth;
180 var h = c * initialHeight;
181 s.css("height", h + "px");
184 var obj = s.data("slider");
185 if (obj && obj.settings.helper) {
186 var inner = s.find(".art-slider-inner");
187 obj.settings.helper.updateSize(inner, { width: initialWidth, height: initialHeight });
193 var responsiveCollages = (function ($) {
195 return function (responsiveDesign) {
196 $(".art-collage").each(function () {
197 var collage = $(this);
198 var parent = collage.closest(":not(.image-caption-wrapper, .art-collage)");
199 var parentWidth = parent.width();
200 var collageWidth = collage.width();
201 var sliderOriginalWidth = collage.children(".art-slider").attr("data-width");
202 if (responsiveDesign.isResponsive && collageWidth > parentWidth) {
204 .add(collage.find(".art-slider"))
205 .add(collage.closest(".image-caption-wrapper"))
206 .css("width", "100%");
207 } else if (!responsiveDesign.isResponsive || collageWidth > sliderOriginalWidth) {
209 .add(collage.find(".art-slider"))
210 .add(collage.closest(".image-caption-wrapper"))
217 var responsiveNavigator = (function ($) {
219 return function (responsiveDesign) {
220 $(".art-slider").each(function () {
221 var slider = $(this);
222 var sliderWidth = slider.width();
223 var nav = slider.siblings(".art-slidenavigator");
225 if (responsiveDesign.isResponsive) {
227 var left = nav.attr("data-left");
228 // (margin = containerWidth - (objectPosition + objectWidth)) < 0
229 var margin = sliderWidth - sliderWidth * parseFloat(left) / 100 - nav.outerWidth(false);
231 nav.css("margin-left", margin);
234 var sliderHeight = slider.css("height");
235 // reset top to original value
237 // newTop = oldTop - (sliderOrinalHeight - sliderCurrentHeight)
238 var offset = parseInt(nav.attr("data-offset") || 0, 10);
239 nav.css("top", parseInt(nav.css("top"), 10) - (slider.attr("data-height") - parseInt(sliderHeight, 10)) + offset);
241 nav.removeAttr("data-offset");
242 nav.removeAttr("style");
249 jQuery(window).bind("responsive", (function ($) {
251 return function (event, responsiveDesign) {
252 responsiveImages(responsiveDesign);
253 responsiveVideos(responsiveDesign);
255 if ($.browser.msie && $.browser.version <= 8) return;
257 if (responsiveDesign.isResponsive) {
258 $(window).on("responsiveResize.slider", function () {
259 responsiveSlideshow(responsiveDesign);
262 $(window).trigger("responsiveResize.slider");
263 $(window).off("responsiveResize.slider");
268 function responsiveSlideshow(responsiveDesign) {
270 responsiveCollages(responsiveDesign); // must be first
271 responsiveSlider(responsiveDesign);
272 responsiveNavigator(responsiveDesign);
280 var responsiveHeader = (function ($) {
282 return function(responsiveDesign) {
283 var header = $("header.art-header");
284 var headerSlider = header.find(".art-slider");
286 if (headerSlider.length) {
287 var firstSlide = headerSlider.find(".art-slide-item").first();
288 var slidebg = firstSlide.css("background-image").split(",");
289 var previousSibling = headerSlider.prev();
290 var sliderNav = headerSlider.siblings(".art-slidenavigator");
291 if (slidebg.length && responsiveDesign.isResponsive) {
292 header.css("background-image", slidebg[slidebg.length - 1]);
293 // if prev is menu in header
294 if (previousSibling.is("nav.art-nav")) {
295 sliderNav.attr("data-offset", previousSibling.height());
298 sliderNav.removeAttr("data-offset");
299 header.removeAttr("style");
305 jQuery(window).bind("responsiveResize", (function ($) {
307 return function (event, responsiveDesign) {
308 responsiveAbsBg(responsiveDesign, $(".art-header"), $("#art-header-bg"));
312 jQuery(window).bind("responsive", (function ($) {
314 return function (event, responsiveDesign) {
315 if ($.browser.msie && $.browser.version <= 8) return;
317 if (responsiveDesign.isResponsive) {
318 $(window).on("responsiveResize.header", function () {
319 responsiveHeader(responsiveDesign);
322 $(window).trigger("responsiveResize.header");
323 $(window).off("responsiveResize.header");
328 var responsiveNavFit = (function ($) {
330 return function (responsiveDesign) {
331 var nav = $("nav.art-nav");
332 var isDesktopNav = true;
333 var isResponsiveNav = false;
334 if (responsiveDesign.isResponsive) {
335 if (!nav.hasClass("responsive-nav")) {
337 var menu = nav.find(".art-hmenu");
338 menu.children("li").each(function() {
339 itemsWidth += $(this).outerWidth(true);
342 if (menu.width() < itemsWidth || responsiveDesign.isPhone) {
343 nav.attr("data-restore-width", responsiveDesign.windowWidth).addClass("responsive-nav").removeClass("desktop-nav");
344 isResponsiveNav = true;
345 isDesktopNav = false;
348 var desktopRestoreWidth = parseInt(nav.attr("data-restore-width"), 10) || 0;
349 if (desktopRestoreWidth !== 0 && responsiveDesign.windowWidth <= desktopRestoreWidth) {
350 isResponsiveNav = true;
351 isDesktopNav = false;
357 nav.removeClass("responsive-nav").addClass("desktop-nav").removeAttr("data-restore-width");
360 $(window).trigger("responsiveNav", {isDesktopNav: isDesktopNav, isResponsiveNav: isResponsiveNav});
364 jQuery(window).bind("responsiveResize", (function ($) {
366 return function (event, responsiveDesign) {
367 responsiveAbsBg(responsiveDesign, $("nav.art-nav"), $("#art-hmenu-bg"));
368 responsiveNavFit(responsiveDesign);
373 var responsiveNav = (function ($) {
375 return function (responsiveDesign) {
376 var nav = $("nav.art-nav"), header, headerMarginTop;
377 if (responsiveDesign.isResponsive && nav.parents(".art-header").length > 0) {
378 header = $(".art-header");
379 var otherElement = header.children("*:not(nav.art-nav):first");
380 if (otherElement.length > 0)
381 nav.insertBefore(otherElement);
386 jQuery(window).bind("responsive", function (event, responsiveDesign) {
388 responsiveNav(responsiveDesign);
393 var responsiveLayoutCell = (function ($) {
395 return function (responsiveDesign) {
396 $(".art-content .art-content-layout-row,.art-footer .art-content-layout-row").each(function () {
398 var rowChildren = row.children(".art-layout-cell");
399 if (rowChildren.length > 1) {
400 if (responsiveDesign.isTablet) {
401 rowChildren.addClass("responsive-tablet-layout-cell").each(function (i) {
402 if ((i + 1) % 2 === 0) {
403 $(this).after("<div class=\"cleared responsive-cleared\">");
407 rowChildren.removeClass("responsive-tablet-layout-cell");
408 row.children(".responsive-cleared").remove();
415 jQuery(window).bind("responsive", function (event, responsiveDesign) {
417 responsiveLayoutCell(responsiveDesign);
421 var responsiveLayoutCell = (function ($) {
423 return function (responsiveDesign) {
424 $(".art-content .art-content-layout-row,.art-footer .art-content-layout-row").each(function () {
426 var rowChildren = row.children(".art-layout-cell");
427 if (rowChildren.length > 1) {
428 if (responsiveDesign.isTablet) {
429 rowChildren.addClass("responsive-tablet-layout-cell").each(function (i) {
430 if ((i + 1) % 2 === 0) {
431 $(this).after("<div class=\"cleared responsive-cleared\">");
435 rowChildren.removeClass("responsive-tablet-layout-cell");
436 row.children(".responsive-cleared").remove();
443 jQuery(window).bind("responsive", function (event, responsiveDesign) {
445 responsiveLayoutCell(responsiveDesign);
451 jQuery(responsiveDesign.initialize);