1/* Created by Artisteer v4.2.0.60623 */ 2/*jshint forin:true, noarg:true, noempty:true, eqeqeq:true, bitwise:true, strict:true, undef:true, curly:false, browser:true, jquery:false */ 3/*global jQuery */ 4 5var responsiveDesign = { 6 isResponsive: false, 7 isDesktop: false, 8 isTablet: false, 9 isPhone: false, 10 lockedResponsiveMode: '', // free mode from start 11 12 responsiveType: 'desktop', 13 responsiveTypeIdx: 1, 14 lockedResponsiveType: '', 15 16 isCurrentDefaultResponsive: false, 17 18 defaultResponsive: [ false, true, true, true, true ], // turn on/off old or new responsive modes 19 20 windowWidth: 0, 21 22 responsive: (function ($) { 23 "use strict"; 24 return function () { 25 var html = $("html"); 26 this.windowWidth = $(window).width(); 27 var triggerEvent = false; 28 29 var isRespVisible = $("#art-resp").is(":visible"); 30 if (this.lockedResponsiveMode === 'desktop') isRespVisible = false; 31 32 if (isRespVisible && !this.isResponsive) { 33 html.addClass("responsive").removeClass("desktop"); 34 this.isResponsive = true; 35 this.isDesktop = false; 36 triggerEvent = true; 37 } else if (!isRespVisible && !this.isDesktop) { 38 html.addClass("desktop").removeClass("responsive default-responsive responsive-tablet responsive-phone"); 39 this.isResponsive = this.isTablet = this.isPhone = false; 40 this.isDesktop = true; 41 triggerEvent = true; 42 } 43 44 if (this.isResponsive) { 45 // additional check to lock responsive mode 46 var isTablet = this.lockedResponsiveMode === 'tablet' || ($("#art-resp-t").is(":visible") && this.lockedResponsiveMode === ''); 47 var isPhone = this.lockedResponsiveMode === 'phone' || ($("#art-resp-m").is(":visible") && this.lockedResponsiveMode === ''); 48 if (isTablet && !this.isTablet) { 49 html.addClass("responsive-tablet").removeClass("responsive-phone"); 50 this.isTablet = true; 51 this.isPhone = false; 52 triggerEvent = true; 53 } else if (isPhone && !this.isPhone) { 54 html.addClass("responsive-phone").removeClass("responsive-tablet"); 55 this.isTablet = false; 56 this.isPhone = true; 57 triggerEvent = true; 58 } 59 } 60 61 var prevResponsiveIndx = this.responsiveTypeIdx; 62 if (this.lockedResponsiveType === 'tabletlandscape' || ($("#art-resp-tablet-landscape").is(":visible") && this.lockedResponsiveType === '')) { 63 this.responsiveType = 'tabletlandscape'; 64 this.responsiveTypeIdx = 1; 65 } else if (this.lockedResponsiveType === 'tabletportrait' || ($("#art-resp-tablet-portrait").is(":visible") && this.lockedResponsiveType === '')) { 66 this.responsiveType = 'tabletportrait'; 67 this.responsiveTypeIdx = 2; 68 } else if (this.lockedResponsiveType === 'phonelandscape' || ($("#art-resp-phone-landscape").is(":visible") && this.lockedResponsiveType === '')) { 69 this.responsiveType = 'phonelandscape'; 70 this.responsiveTypeIdx = 3; 71 } else if (this.lockedResponsiveType === 'phoneportrait' || ($("#art-resp-phone-portrait").is(":visible") && this.lockedResponsiveType === '')) { 72 this.responsiveType = 'phoneportrait'; 73 this.responsiveTypeIdx = 4; 74 } else { //if (this.lockedResponsiveType === 'desktop' || ($("#art-resp-desktop").is(":visible") && this.lockedResponsiveType === '')) { 75 this.responsiveType = 'desktop'; 76 this.responsiveTypeIdx = 0; 77 } 78 79 if (triggerEvent || prevResponsiveIndx !== this.responsiveTypeIdx) { 80 triggerEvent = true; 81 82 if (this.isResponsive && this.defaultResponsive[ this.responsiveTypeIdx ]) { 83 this.isCurrentDefaultResponsive = true; 84 html.removeClass('custom-responsive').addClass('default-responsive'); 85 } else { 86 this.isCurrentDefaultResponsive = false; 87 html.removeClass('default-responsive').addClass('custom-responsive'); 88 } 89 } 90 91 if (triggerEvent) { 92 $(window).trigger("responsive", this); 93 } 94 95 $(window).trigger("responsiveResize", this); 96 }; 97 })(jQuery), 98 initialize: (function ($) { 99 "use strict"; 100 return function () { 101 // get correct defaultResponsive 102 if (typeof defaultResponsiveData !== 'undefined') responsiveDesign.defaultResponsive = defaultResponsiveData; 103 104 $("<div id=\"art-resp\"><div id=\"art-resp-m\"></div><div id=\"art-resp-t\"></div></div>").appendTo("body"); 105 $('<div id="art-resp-tablet-landscape" /><div id="art-resp-tablet-portrait" /><div id="art-resp-phone-landscape" /><div id="art-resp-phone-portrait" />').appendTo('body'); 106 107 108 /* (1) Use this code for debug instead of (2): 109 * var resizeTimeout; 110 * $(window).resize(function () { 111 * clearTimeout(resizeTimeout); 112 * resizeTimeout = setTimeout(function () { responsiveDesign.responsive(); }, 50); 113 * }); 114 */ 115 116 /* (2) Use this code for production and comment (1): */ 117 $(window).resize(function () { 118 responsiveDesign.responsive(); 119 }); 120 121 $(window).trigger("resize"); 122 }; 123 })(jQuery), 124 // lock responsive in some mode: desktop, tablet or phone for editor 125 lockResponsiveType: function (mode) { 126 responsiveDesign.lockedResponsiveType = mode; 127 128 if (mode.indexOf('tablet') === 0) mode = 'tablet'; 129 if (mode.indexOf('phone') === 0) mode = 'phone'; 130 131 responsiveDesign.lockedResponsiveMode = mode; 132 }, 133 // using in editor to turn off default responsive 134 toogleDefaultResponsive: function (type, val) { 135 var old = responsiveDesign.defaultResponsive[ type ]; 136 responsiveDesign.defaultResponsive[ type ] = val; 137 if (old !== val) responsiveDesign.responsiveTypeIdx = -1; 138 } 139}; 140 141function responsiveAbsBg(responsiveDesign, el, bg) { 142 "use strict"; 143 if (bg.length === 0) 144 return; 145 146 var desktopBgTop = bg.attr("data-bg-top"); 147 var desktopBgHeight = bg.attr("data-bg-height"); 148 149 if (responsiveDesign.isResponsive) { 150 if (typeof desktopBgTop === "undefined" || desktopBgTop === false) { 151 bg.attr("data-bg-top", bg.css("top")); 152 bg.attr("data-bg-height", bg.css("height")); 153 } 154 155 var elTop = el.offset().top; 156 var elHeight = el.outerHeight(); 157 bg.css("top", elTop + "px"); 158 bg.css("height", elHeight + "px"); 159 } else if (typeof desktopBgTop !== "undefined" && desktopBgTop !== false) { 160 bg.css("top", desktopBgTop); 161 bg.css("height", desktopBgHeight); 162 bg.removeAttr("data-bg-top"); 163 bg.removeAttr("data-bg-height"); 164 } 165} 166 167var responsiveImages = (function ($) { 168 "use strict"; 169 return function (responsiveDesign) { 170 $("img[width]").each(function () { 171 var img = $(this), newWidth = "", newMaxWidth = "", newHeight = ""; 172 if (responsiveDesign.isResponsive) { 173 newWidth = "auto"; 174 newHeight = "auto"; 175 newMaxWidth = "100%"; 176 177 var widthAttr = img.attr("width"); 178 if (widthAttr !== null && typeof (widthAttr) === "string" && widthAttr.indexOf("%") === -1) { 179 newWidth = "100%"; 180 newMaxWidth = parseInt($.trim(widthAttr), 10) + "px"; 181 } 182 } 183 img.css("width", newWidth).css("max-width", newMaxWidth).css("height", newHeight); 184 }); 185 }; 186})(jQuery); 187 188var responsiveVideos = (function ($) { 189 "use strict"; 190 return function (responsiveDesign) { 191 $("iframe[width],object[width],embed[width]").each(function () { 192 var obj = $(this); 193 if ((obj.is('[width]') && obj.attr("width").indexOf("%") !== -1) || 194 (obj.is('[class]') && obj.attr("class").indexOf("twitter") !== -1)) 195 return; 196 var container = obj.parent(".art-responsive-embed"); 197 if (responsiveDesign.isResponsive) { 198 if (container.length !== 0) 199 return; 200 container = $("<div class=\"art-responsive-embed\">").insertBefore(obj); 201 obj.appendTo(container); 202 } else if (container.length > 0) { 203 obj.insertBefore(container); 204 container.remove(); 205 } 206 }); 207 }; 208})(jQuery); 209 210// this must be called for collages only! 211var responsiveTextblocks = (function ($) { 212 "use strict"; 213 return function (slider, responsiveDesign) { 214 slider.find(".art-textblock").each(function () { 215 if (parseInt(slider.attr("data-width"), 10) === 0) { 216 return true; 217 } 218 var tb = $(this); 219 var c = slider.width() / slider.attr("data-width"); 220 tb.css({ 221 "height": "", 222 "width": "", 223 "top": "", 224 "margin-left": "" 225 }); 226 if (responsiveDesign.isResponsive) { 227 var tbHeight = parseInt(tb.css("height"), 10); 228 var tbWidth = parseInt(tb.css("width"), 10); 229 var tbTop = parseInt(tb.css("top"), 10); 230 var tbMargin = parseInt(tb.css("margin-left"), 10); 231 tb.add(tb.find('div')).css({ 232 "height": tbHeight * c, 233 "width": tbWidth * c 234 }); 235 tb.css("top", tbTop * c); 236 tb.attr("style", function (i, s) { return s + "margin-left: " + (tbMargin * c) + "px !important"; }); 237 } 238 }); 239 }; 240})(jQuery); 241 242var responsiveSlider = (function ($) { 243 "use strict"; 244 return function (responsiveDesign) { 245 $(".art-slider").each(function () { 246 var s = $(this); 247 248 var isHeaderSlider = s.parent('.art-header').length > 0 || s.parent('.art-pageslider').length > 0;
249 if (!isHeaderSlider && responsiveDesign.isResponsive) { 250 responsiveTextblocks(s, responsiveDesign); 251 return; 252 } 253 254 var initialWidth = s.attr("data-width"); 255 var initialHeight = s.attr("data-height"); 256 257 // set size 258 259 var obj = s.data("slider"); 260 if (!obj) { 261 return false; 262 } 263 264 var inner = s.find(".art-slider-inner"); 265 266 if (!responsiveDesign.isResponsive && obj.settings.helper) { 267 obj.settings.helper.updateSize(inner, { width: initialWidth, height: initialHeight }); 268 return; 269 } 270 271 // set slider 272 if (obj && obj.settings.helper) { 273 $(window).on("responsiveResize", function updateSize() { 274 if (obj.settings.animation === "fade") return; 275 if (responsiveDesign.isCurrentDefaultResponsive) { 276 obj.settings.helper.updateSize(inner, { width: initialWidth, height: initialHeight }); 277 $.each(inner.children(), function () { 278 $(this).css( 279 "background-position", 280 -Math.floor(initialWidth / 2 - parseInt(inner.outerWidth(), 10) / 2) + "px" + 281 -Math.floor(initialHeight / 2 - parseInt(inner.outerHeight(), 10) / 2) + "px " 282 ); 283 }); 284 } else { 285 $(window).off("responsiveResize", updateSize); 286 } 287 }); 288 } 289 }); 290 }; 291})(jQuery); 292 293var responsiveCollages = (function ($) { 294 "use strict"; 295 return function (responsiveDesign) { 296 $(".art-collage").each(function() { 297 var collage = $(this); 298 var slider = collage.find(".art-slider"); 299 300 var initialWidth = slider.attr("data-width"); 301 var initialHeight = slider.attr("data-height"); 302 303 var parent = collage.closest(':not(.image-caption-wrapper, .art-collage)'); 304 var parentIcw = collage.closest('.image-caption-wrapper'); 305 var parentWidth = parent.width(); 306 var collageWidth = collage.width(); 307 308 // for responsive try to make collage smaller 309 // a) no icw - check collage width and parent 310 // b) with icw - collage is bigger than icw 311 var doms = collage 312 .add(slider) 313 .add(collage.closest(".image-caption-wrapper")); 314button 315 // so try to make collage smaller 316 if (responsiveDesign.isResponsive && collageWidth > parentWidth || (parentIcw.length > 0 && collageWidth > parentIcw.width())) { 317 doms.css("width", "100%"); 318 } 319 320 // but if icw make collage too bit reset it width to noraml 321 collageWidth = collage.width(); 322 if (collageWidth > initialWidth) { 323 doms.css("width", ""); 324 } 325 326 var c = slider.width() / initialWidth; 327 var h = c * initialHeight; 328 slider.css("height", h + "px"); 329 }); 330 }; 331})(jQuery); 332 333 334jQuery(window).bind("responsive", (function ($) { 335 "use strict"; 336 return function (event, responsiveDesign) { 337 // so this event is main and it generate sub events to make important changes before we will modify slider 338 // for example we move out of slider menu button, and it change slider size 339 $(window).trigger('responsivePage', responsiveDesign); 340 responsiveImages(responsiveDesign); 341 responsiveVideos(responsiveDesign); 342 343 responsiveSlider(responsiveDesign); 344 responsiveNavigator(responsiveDesign); 345 }; 346})(jQuery)); 347 348jQuery(window).bind("responsiveResize", (function ($) { 349 "use strict"; 350 return function (event, responsiveDesign) { 351 responsiveCollages(responsiveDesign); 352 responsiveNavigator(responsiveDesign); 353 }; 354})(jQuery)); 355 356jQuery(function ($) { 357 if (!browser.ie || browser.version > 8) return; 358 var timeout; 359 $(window).on("resize", function () { 360 clearTimeout(timeout); 361 timeout = setTimeout(function() { 362 responsiveCollages(responsiveDesign); 363 responsiveNavigator(responsiveDesign); 364 }, 25); 365 });
366 responsiveCollages(responsiveDesign); 367 responsiveNavigator(responsiveDesign); 368}); 369 370var responsiveHeader = (function ($) { 371 "use strict"; 372 return function(responsiveDesign) { 373 var header = $("header.art-header"); 374 var headerSlider = header.find(".art-slider"); 375 376 if (headerSlider.length) { 377 var firstSlide = headerSlider.find(".art-slide-item").first(); 378 var slidebg = firstSlide.css("background-image").split(","); 379 var previousSibling = headerSlider.prev(); 380 var sliderNav = headerSlider.siblings(".art-slidenavigator"); 381 if (slidebg.length && responsiveDesign.isResponsive) { 382 // if prev is menu in header 383 if (previousSibling.is("nav.art-nav")) { 384 sliderNav.attr("data-offset", previousSibling.height()); 385 } 386 } else { 387 sliderNav.removeAttr("data-offset"); 388 header.removeAttr("style"); 389 } 390 } 391 }; 392})(jQuery); 393 394jQuery(window).bind("responsiveResize", (function ($) { 395 "use strict"; 396 return function (event, responsiveDesign) { 397 responsiveAbsBg(responsiveDesign, $(".art-header"), $("#art-header-bg")); 398 }; 399})(jQuery)); 400 401jQuery(window).bind("responsive", (function ($) { 402 "use strict"; 403 return function (event, responsiveDesign) { 404 if (browser.ie && browser.version <= 8) return; 405 406 if (responsiveDesign.isResponsive) { 407 $(window).on("responsiveResize.header", function () { 408 responsiveHeader(responsiveDesign); 409 }); 410 } else { 411 $(window).trigger("responsiveResize.header"); 412 $(window).trigger("resize"); 413 $(window).off("responsiveResize.header"); 414 } 415 }; 416})(jQuery)); 417 418jQuery(window).bind("responsiveResize", (function ($) { 419 "use strict"; 420 return function (event, responsiveDesign) { 421 responsiveAbsBg(responsiveDesign, $("nav.art-nav"), $("#art-hmenu-bg")); 422 $(window).trigger("responsiveNav", { responsiveDesign: responsiveDesign }); 423 }; 424})(jQuery)); 425 426 427 428 429jQuery(function ($) { 430 "use strict"; 431 $(".art-hmenu a") 432 .click(function(e) { 433 var link = $(this); 434 if ($(".responsive").length === 0) 435 return; 436 437 var item = link.parent("li"); 438 439 if (item.hasClass("active")) { 440 item.removeClass("active").children("a").removeClass("active"); 441 } else { 442 item.addClass("active").children("a").addClass("active"); 443 } 444 445 if (item.children("ul").length > 0) { 446 var href = link.attr("href"); 447 link.attr("href", "#"); 448 setTimeout(function () { 449 link.attr("href", href); 450 }, 300); 451 e.preventDefault(); 452 } 453 }) 454 .each(function() { 455 var link = $(this); 456 if (link.get(0).href === location.href) { 457 link.addClass("active").parents("li").addClass("active"); 458 return false; 459 } 460 }); 461}); 462 463 464jQuery(function($) { 465 $("<a href=\"#\" class=\"art-menu-btn\"><span></span><span></span><span></span><span style=\"display:none;\">mobile menu</span></a>").insertBefore(".art-hmenu").click(function(e) { 466 var menu = $(this).next(); 467 if (menu.is(":visible")) { 468 menu.slideUp("fast", function() { 469 $(this).removeClass("visible").css("display", ""); 470 }); 471 } else { 472 menu.slideDown("fast", function() { 473 $(this).addClass("visible").css("display", ""); 474 }); 475 } 476 e.preventDefault(); 477 }); 478}); 479 480jQuery(window).bind("responsiveNav", (function ($) { 481 /*global menuExtendedCreate */ 482 "use strict"; 483 return function (event, options) { 484 if (options.responsiveDesign.isDesktop && $("li.ext").length > 0) { 485 menuExtendedCreate(); 486 } 487 }; 488})(jQuery)); 489 490/*global jQuery, responsiveDesign*/ 491 492jQuery(window).bind("responsive", (function ($) { 493 "use strict"; 494 return function (event, responsiveDesign) { 495 if (typeof setPopupVMenuOpenDirection !== "undefined" && responsiveDesign.isDesktop) { 496 setPopupVMenuOpenDirection({ 497 container: "div.art-sheet", 498 defaultContainer: "#art-main", 499 vMenuClass: "art-vmenu", 500 leftToRightClass: "art-vmenu-left-to-right", 501 rightToLeftClass: "art-vmenu-right-to-left"}); 502 } 503 }; 504})(jQuery)); 505 506jQuery(function ($) { 507 "use strict"; 508 $(".art-vmenu>li>a").click(function(event) { 509 if (responsiveDesign.isResponsive) { 510 var link = $(this), 511 submenu = link.siblings("ul"); 512 if (submenu.length === 0) 513 return; 514 if (submenu.is(":visible")) { 515 submenu.slideUp("fast", function() { 516 $(this).removeClass("vmenu-resp-popup-visible").css("display", ""); 517 }); 518 } else { 519 submenu.slideDown("fast", function() { 520 $(this).addClass("vmenu-resp-popup-visible").css("display", ""); 521 }); 522 } 523 event.preventDefault(); 524 return false; 525 } 526 });
527}); 528 529var responsiveLayoutCell = (function ($) { 530 "use strict"; 531 return function (responsiveDesign) { 532 $(".art-content .art-content-layout-row,.art-footer .art-content-layout-row").each(function () { 533 var row = $(this); 534 var rowChildren = row.children(".art-layout-cell"); 535 if (rowChildren.length > 1) { 536 var c; 537 row.removeClass("responsive-layout-row-2").removeClass("responsive-layout-row-3"); 538 if (rowChildren.length === 1) { 539 c = 1; 540 } else if (rowChildren.length % 2 === 0) { 541 var c = 2; 542 row.addClass("responsive-layout-row-2"); 543 } else { 544 var c = 3; 545 row.addClass("responsive-layout-row-3"); 546 } 547 if (c > 1 && responsiveDesign.isTablet) { 548 rowChildren.addClass("responsive-tablet-layout-cell").each(function (i) { 549 if ((i + 1) % c === 0) { 550 $(this).after("<div class=\"cleared responsive-cleared\">"); 551 } 552 }); 553 } else { 554 rowChildren.removeClass("responsive-tablet-layout-cell"); 555 row.children(".responsive-cleared").remove(); 556 } 557 } 558 }); 559 }; 560})(jQuery); 561 562jQuery(window).bind("responsive", function (event, responsiveDesign) { 563 "use strict"; 564 responsiveLayoutCell(responsiveDesign); 565}); 566 567var responsiveLayoutCell = (function ($) { 568 "use strict"; 569 return function (responsiveDesign) { 570 $(".art-content .art-content-layout-row,.art-footer .art-content-layout-row").each(function () { 571 var row = $(this); 572 var rowChildren = row.children(".art-layout-cell"); 573 if (rowChildren.length > 1) { 574 var c; 575 row.removeClass("responsive-layout-row-2").removeClass("responsive-layout-row-3"); 576 if (rowChildren.length === 1) { 577 c = 1; 578 } else if (rowChildren.length % 2 === 0) { 579 var c = 2; 580 row.addClass("responsive-layout-row-2"); 581 } else { 582 var c = 3; 583 row.addClass("responsive-layout-row-3"); 584 } 585 if (c > 1 && responsiveDesign.isTablet) { 586 rowChildren.addClass("responsive-tablet-layout-cell").each(function (i) { 587 if ((i + 1) % c === 0) { 588 $(this).after("<div class=\"cleared responsive-cleared\">"); 589 } 590 }); 591 } else { 592 rowChildren.removeClass("responsive-tablet-layout-cell"); 593 row.children(".responsive-cleared").remove(); 594 } 595 } 596 }); 597 }; 598})(jQuery); 599 600jQuery(window).bind("responsive", function (event, responsiveDesign) { 601 "use strict"; 602 responsiveLayoutCell(responsiveDesign); 603}); 604 605 606 607//setTimeout(function () { $("html").addClass("desktop") }, 0); 608jQuery(document).ready(function(){ 609 if (!browser.ie || browser.version > 8) { 610 jQuery(responsiveDesign.initialize); 611 } else { 612 jQuery("html").addClass("desktop"); 613 } 614}); 615 616
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.