1/* Created by Artisteer v4.3.0.60745 */ 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 (obj.id && obj.id.indexOf("google") !== -1)) 196 return; 197 var container = obj.parent(".art-responsive-embed"); 198 if (responsiveDesign.isResponsive) { 199 if (container.length !== 0) 200 return; 201 container = $("<div class=\"art-responsive-embed\">").insertBefore(obj); 202 obj.appendTo(container); 203 } else if (container.length > 0) { 204 obj.insertBefore(container); 205 container.remove(); 206 } 207 }); 208 }; 209})(jQuery); 210 211// this must be called for collages only! 212var responsiveTextblocks = (function ($) { 213 "use strict"; 214 return function (slider, responsiveDesign) { 215 slider.find(".art-textblock").each(function () { 216 if (parseInt(slider.attr("data-width"), 10) === 0) { 217 return true; 218 } 219 var tb = $(this); 220 var c = slider.width() / slider.attr("data-width"); 221 tb.css({ 222 "height": "", 223 "width": "", 224 "top": "", 225 "margin-left": "" 226 }); 227 if (responsiveDesign.isResponsive) { 228 var tbHeight = parseInt(tb.css("height"), 10); 229 var tbWidth = parseInt(tb.css("width"), 10); 230 var tbTop = parseInt(tb.css("top"), 10); 231 var tbMargin = parseInt(tb.css("margin-left"), 10); 232 tb.add(tb.find('div')).css({ 233 "height": tbHeight * c, 234 "width": tbWidth * c 235 }); 236 tb.css("top", tbTop * c); 237 tb.attr("style", function (i, s) { return s + "margin-left: " + (tbMargin * c) + "px !important"; }); 238 } 239 }); 240 }; 241})(jQuery); 242 243var responsiveSlider = (function ($) { 244 "use strict"; 245 return function (responsiveDesign) { 246 $(".art-slider").each(function () { 247 var s = $(this); 248 249 var isHeaderSlider = s.parent('.art-header').length > 0 || s.parent('.art-pageslider').length > 0; 250 if (!isHeaderSlider && responsiveDesign.isResponsive) { 251 responsiveTextblocks(s, responsiveDesign); 252 return; 253 } 254 255 var initialWidth = s.attr("data-width"); 256 var initialHeight = s.attr("data-height"); 257 258 // set size 259 260 var obj = s.data("slider"); 261 if (!obj) { 262 return false;
263 } 264 265 var inner = s.find(".art-slider-inner"); 266 267 if (!responsiveDesign.isResponsive && obj.settings.helper) { 268 obj.settings.helper.updateSize(inner, { width: initialWidth, height: initialHeight }); 269 return; 270 } 271 272 // set slider 273 if (obj && obj.settings.helper) { 274 $(window).on("responsiveResize", function updateSize() { 275 if (obj.settings.animation === "fade") return; 276 if (responsiveDesign.isCurrentDefaultResponsive) { 277 obj.settings.helper.updateSize(inner, { width: initialWidth, height: initialHeight }); 278 $.each(inner.children(), function () { 279 $(this).css( 280 "background-position", 281 -Math.floor(initialWidth / 2 - parseInt(inner.outerWidth(), 10) / 2) + "px" + 282 -Math.floor(initialHeight / 2 - parseInt(inner.outerHeight(), 10) / 2) + "px " 283 ); 284 }); 285 } else { 286 $(window).off("responsiveResize", updateSize); 287 } 288 }); 289 } 290 }); 291 }; 292})(jQuery); 293 294var responsiveCollages = (function ($) { 295 "use strict"; 296 return function (responsiveDesign) { 297 $(".art-collage").each(function() { 298 var collage = $(this); 299 var slider = collage.find(".art-slider"); 300 301 var initialWidth = slider.attr("data-width"); 302 var initialHeight = slider.attr("data-height"); 303 304 var parent = collage.closest(':not(.image-caption-wrapper, .art-collage)'); 305 var parentIcw = collage.closest('.image-caption-wrapper'); 306 var parentWidth = parent.width(); 307 var collageWidth = collage.width(); 308 309 // for responsive try to make collage smaller 310 // a) no icw - check collage width and parent 311 // b) with icw - collage is bigger than icw 312 var doms = collage 313 .add(slider) 314 .add(collage.closest(".image-caption-wrapper")); 315 316 // so try to make collage smaller 317 if (responsiveDesign.isResponsive && collageWidth > parentWidth || (parentIcw.length > 0 && collageWidth > parentIcw.width())) { 318 doms.css("width", "100%"); 319 } 320 321 // but if icw make collage too bit reset it width to noraml 322 collageWidth = collage.width(); 323 if (collageWidth > initialWidth) { 324 doms.css("width", ""); 325 } 326 327 var c = slider.width() / initialWidth; 328 var h = c * initialHeight; 329 slider.css("height", h + "px"); 330 }); 331 }; 332})(jQuery); 333 334 335jQuery(window).bind("responsive", (function ($) { 336 "use strict"; 337 return function (event, responsiveDesign) { 338 // so this event is main and it generate sub events to make important changes before we will modify slider 339 // for example we move out of slider menu button, and it change slider size 340 $(window).trigger('responsivePage', responsiveDesign); 341 responsiveImages(responsiveDesign); 342 responsiveVideos(responsiveDesign); 343 344 responsiveSlider(responsiveDesign); 345 responsiveNavigator(responsiveDesign); 346 }; 347})(jQuery)); 348 349jQuery(window).bind("responsiveResize", (function ($) { 350 "use strict"; 351 return function (event, responsiveDesign) { 352 responsiveCollages(responsiveDesign); 353 responsiveNavigator(responsiveDesign); 354 }; 355})(jQuery)); 356 357jQuery(function ($) { 358 if (!browser.ie || browser.version > 8) return; 359 var timeout; 360 $(window).on("resize", function () { 361 clearTimeout(timeout); 362 timeout = setTimeout(function() { 363 responsiveCollages(responsiveDesign); 364 responsiveNavigator(responsiveDesign); 365 }, 25); 366 }); 367 responsiveCollages(responsiveDesign); 368 responsiveNavigator(responsiveDesign); 369}); 370 371var responsiveHeader = (function ($) { 372 "use strict"; 373 return function(responsiveDesign) { 374 var header = $("header.art-header"); 375 var headerSlider = header.find(".art-slider"); 376 377 if (headerSlider.length) { 378 var firstSlide = headerSlider.find(".art-slide-item").first(); 379 var slidebg = firstSlide.css("background-image").split(","); 380 var previousSibling = headerSlider.prev(); 381 var sliderNav = headerSlider.siblings(".art-slidenavigator"); 382 if (slidebg.length && responsiveDesign.isResponsive) { 383 // if prev is menu in header 384 if (previousSibling.is("nav.art-nav")) { 385 sliderNav.attr("data-offset", previousSibling.height()); 386 } 387 } else { 388 sliderNav.removeAttr("data-offset"); 389 header.removeAttr("style"); 390 } 391 } 392 }; 393})(jQuery); 394 395jQuery(window).bind("responsiveResize", (function ($) { 396 "use strict"; 397 return function (event, responsiveDesign) { 398 responsiveAbsBg(responsiveDesign, $(".art-header"), $("#art-header-bg")); 399 }; 400})(jQuery)); 401 402jQuery(window).bind("responsive", (function ($) { 403 "use strict"; 404 return function (event, responsiveDesign) { 405 if (browser.ie && browser.version <= 8) return; 406 407 if (responsiveDesign.isResponsive) { 408 $(window).on("responsiveResize.header", function () { 409 responsiveHeader(responsiveDesign); 410 }); 411 } else { 412 $(window).trigger("responsiveResize.header"); 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></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 480var responsiveLayoutCell = (function ($) { 481 "use strict"; 482 return function (responsiveDesign) { 483 $(".art-content .art-content-layout-row,.art-footer .art-content-layout-row").each(function () { 484 var row = $(this); 485 var rowChildren = row.children(".art-layout-cell"); 486 if (rowChildren.length > 0) { 487 var c; 488 row.removeClass("responsive-layout-row-2").removeClass("responsive-layout-row-3").removeClass("responsive-layout-row-1"); 489 if (rowChildren.length === 1) { 490 c = 1; 491 row.addClass("responsive-layout-row-1"); 492 } else if (rowChildren.length % 2 === 0) { 493 var c = 2; 494 row.addClass("responsive-layout-row-2"); 495 } else { 496 var c = 3; 497 row.addClass("responsive-layout-row-3"); 498 } 499 if (c > 0 && responsiveDesign.isTablet) { 500 rowChildren.addClass("responsive-tablet-layout-cell").each(function (i) { 501 if ((i + 1) % c === 0) { 502 $(this).after("<div class=\"cleared responsive-cleared\">"); 503 } 504 }); 505 } else { 506 rowChildren.removeClass("responsive-tablet-layout-cell"); 507 row.children(".responsive-cleared").remove(); 508 } 509 } 510 }); 511 }; 512})(jQuery); 513 514jQuery(window).bind("responsive", function (event, responsiveDesign) { 515 "use strict"; 516 517 responsiveLayoutCell(responsiveDesign); 518}); 519 520/*global jQuery, responsiveDesign*/ 521 522 523 524 525//setTimeout(function () { $("html").addClass("desktop") }, 0); 526 527if (!browser.ie || browser.version > 8) { 528 jQuery(responsiveDesign.initialize); 529} else { 530 jQuery("html").addClass("desktop"); 531}
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.