1<!-- 2/******************************************************************************* 3 OLDIE - or Old IE. A script that finds the version of IE you're using, 4 and redirects if lower than the set parameter. 5 [[ Created by Ryan McLaughlin, www.DaoByDesign.com ]] 6*******************************************************************************/ 7var browser = navigator.appName 8var ver = navigator.appVersion 9var thestart = parseFloat(ver.indexOf("MSIE"))+1 //This finds the start of the MS version string. 10var brow_ver = parseFloat(ver.substring(thestart+4,thestart+7)) //This cuts out the bit of string we need. 11 12if ((browser=="Microsoft Internet Explorer") && (brow_ver < 8)) //By default the min. IE ver is set to 6. Change as desired. 13 { 14 window.location="/oldi.html"; //URL to redirect to. 15 } 16//--> 17 18 19function change(e) { 20 var y = $(this); var D = this.defaultValue; var V = $.trim(y.val()); var t = e.type; 21 switch (t) { 22 case 'focus': if(D==V&&D=='http://'){y.select();}else if(D==V){y.val('');}else{y.val(V); y.select();};y.removeClass("error"); break; 23 case 'blur': if(V==''){y.val(D);}; break; 24 } 25} 26 27// Avoid `console` errors in browsers that lack a console. 28(function() { 29 var method; 30 var noop = function noop() {}; 31 var methods = [ 32 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', 33 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', 34 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', 35 'timeStamp', 'trace', 'warn' 36 ]; 37 var length = methods.length; 38 var console = (window.console = window.console || {}); 39 40 while (length--) { 41 method = methods[length]; 42 43 // Only stub undefined methods. 44 if (!console[method]) { 45 console[method] = noop; 46 } 47 } 48}()); 49 50// Place any jQuery/helper plugins in here. 51 52 53/*! waitForImages jQuery Plugin - v1.4.2 - 2013-01-19 54* https://github.com/alexanderdickson/waitForImages 55* Copyright (c) 2013 Alex Dickson; Licensed MIT */ 56(function(e){var t="waitForImages";e.waitForImages={hasImageProperties:["backgroundImage","listStyleImage","borderImage","borderCornerImage"]},e.expr[":"].uncached=function(t){if(!e(t).is('img[src!=""]'))return!1;var n=new Image;return n.src=t.src,!n.complete},e.fn.waitForImages=function(n,r,i){var s=0,o=0;e.isPlainObject(arguments[0])&&(i=arguments[0].waitForAll,r=arguments[0].each,n=arguments[0].finished),n=n||e.noop,r=r||e.noop,i=!!i;if(!e.isFunction(n)||!e.isFunction(r))throw new TypeError("An invalid callback was supplied.");return this.each(function(){var u=e(this),a=[],f=e.waitForImages.hasImageProperties||[],l=/url\(\s*(['"]?)(.*?)\1\s*\)/g;i?u.find("*").andSelf().each(function(){var t=e(this);t.is("img:uncached")&&a.push({src:t.attr("src"),element:t[0]}),e.each(f,function(e,n){var r=t.css(n),i;if(!r)return!0;while(i=l.exec(r))a.push({src:i[2],element:t[0]})})}):u.find("img:uncached").each(function(){a.push({src:this.src,element:this})}),s=a.length,o=0,s===0&&n.call(u[0]),e.each(a,function(i,a){var f=new Image;e(f).bind("load."+t+" error."+t,function(e){o++,r.call(a.element,o,s,e.type=="load");if(o==s)return n.call(u[0]),!1}),f.src=a.src})})}})(jQuery); 57 58/** 59 * Cookie plugin 60 * 61 * Copyright (c) 2006 Klaus Hartl (stilbuero.de) 62 * Dual licensed under the MIT and GPL licenses: 63 * http://www.opensource.org/licenses/mit-license.php 64 * http://www.gnu.org/licenses/gpl.html 65 * 66 */ 67 68/** 69 * Create a cookie with the given name and value and other optional parameters. 70 * 71 * @example $.cookie('the_cookie', 'the_value'); 72 * @desc Set the value of a cookie. 73 * @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true }); 74 * @desc Create a cookie with all available options. 75 * @example $.cookie('the_cookie', 'the_value'); 76 * @desc Create a session cookie. 77 * @example $.cookie('the_cookie', null); 78 * @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain 79 * used when the cookie was set. 80 * 81 * @param String name The name of the cookie. 82 * @param String value The value of the cookie. 83 * @param Object options An object literal containing key/value pairs to provide optional cookie attributes. 84 * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object. 85 * If a negative value is specified (e.g. a date in the past), the cookie will be deleted. 86 * If set to null or omitted, the cookie will be a session cookie and will not be retained 87 * when the the browser exits. 88 * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie). 89 * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie). 90 * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will 91 * require a secure protocol (like HTTPS). 92 * @type undefined 93 * 94 * @name $.cookie 95 * @cat Plugins/Cookie 96 * @author Klaus Hartl/[email protected] 97 */ 98 99/** 100 * Create multiple cookies at once stored in an object, with optional parameters affecting them all. 101 * 102 * @example $.cookie({ 'the_cookie' : 'the_value' }); 103 * @desc Set/delete multiple cookies at once. 104 * @example $.cookie({ 'the_cookie' : 'the_value' }, { expires: 7, path: '/', domain: 'jquery.com', secure: true }); 105 * @desc Set/delete multiple cookies with options. 106 * 107 * @param Object name An object with multiple cookie name-value pairs. 108 * @param Object options An object literal containing key/value pairs to provide optional cookie attributes. 109 * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object. 110 * If a negative value is specified (e.g. a date in the past), the cookie will be deleted. 111 * If set to null or omitted, the cookie will be a session cookie and will not be retained 112 * when the the browser exits. 113 * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie). 114 * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie). 115 * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will 116 * require a secure protocol (like HTTPS). 117 * @type undefined 118 * 119 * @name $.cookie 120 * @cat Plugins/Cookie 121 * @author Klaus Hartl/[email protected] 122 */ 123 124/** 125 * Get the value of a cookie with the given name. 126 * 127 * @example $.cookie('the_cookie'); 128 * @desc Get the value of a cookie. 129 * 130 * @param String name The name of the cookie. 131 * @return The value of the cookie.
132 * @type String 133 * 134 * @name $.cookie 135 * @cat Plugins/Cookie 136 * @author Klaus Hartl/[email protected] 137 */ 138 139/** 140 * Get the names and values of all cookies for the page. 141 * 142 * @example $.cookie(); 143 * @desc Get all the cookies for the page 144 * 145 * @return an object with the name-value pairs of all available cookies. 146 * @type Object 147 * 148 * @name $.cookie 149 * @cat Plugins/Cookie 150 * @author Klaus Hartl/[email protected] 151 */ 152 153 154jQuery.cookie = function(name, value, options) { 155 if (typeof value != 'undefined' || (name && typeof name != 'string')) { // name and value given, set cookie 156 if (typeof name == 'string') { 157 options = options || {}; 158 if (value === null) { 159 value = ''; 160 options.expires = -1; 161 } 162 var expires = ''; 163 if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) { 164 var date; 165 if (typeof options.expires == 'number') { 166 date = new Date(); 167 date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000)); 168 } else { 169 date = options.expires; 170 } 171 expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE 172 } 173 // CAUTION: Needed to parenthesize options.path and options.domain 174 // in the following expressions, otherwise they evaluate to undefined 175 // in the packed version for some reason... 176 var path = options.path ? '; path=' + (options.path) : ''; 177 var domain = options.domain ? '; domain=' + (options.domain) : ''; 178 var secure = options.secure ? '; secure' : ''; 179 document.cookie = name + '=' + encodeURIComponent(value) + expires + path + domain + secure; 180 } else { // `name` is really an object of multiple cookies to be set. 181 for (var n in name) { jQuery.cookie(n, name[n], value||options); } 182 } 183 } else { // get cookie (or all cookies if name is not provided) 184 var returnValue = {}; 185 if (document.cookie) { 186 var cookies = document.cookie.split(';'); 187 for (var i = 0; i < cookies.length; i++) { 188 var cookie = jQuery.trim(cookies[i]); 189 // Does this cookie string begin with the name we want? 190 if (!name) { 191 var nameLength = cookie.indexOf('='); 192 returnValue[ cookie.substr(0, nameLength)] = decodeURIComponent(cookie.substr(nameLength+1)); 193 } else if (cookie.substr(0, name.length + 1) == (name + '=')) { 194 returnValue = decodeURIComponent(cookie.substr(name.length + 1)); 195 break; 196 } 197 } 198 } 199 return returnValue; 200 } 201}; 202 203 204 205/*! Backstretch - v2.0.4 - 2013-06-19 206* http://srobbin.com/jquery-plugins/backstretch/ 207* Copyright (c) 2013 Scott Robbin; Licensed MIT */ 208 209;(function ($, window, undefined) { 210 'use strict'; 211 212 /* PLUGIN DEFINITION 213 * ========================= */ 214 215 $.fn.backstretch = function (images, options) { 216 // We need at least one image or method name 217 if (images === undefined || images.length === 0) { 218 $.error("No images were supplied for Backstretch"); 219 } 220 221 /* 222 * Scroll the page one pixel to get the right window height on iOS 223 * Pretty harmless for everyone else 224 */ 225 if ($(window).scrollTop() === 0 ) { 226 window.scrollTo(0, 0); 227 } 228 229 return this.each(function () { 230 var $this = $(this) 231 , obj = $this.data('backstretch'); 232 233 // Do we already have an instance attached to this element? 234 if (obj) { 235 236 // Is this a method they're trying to execute? 237 if (typeof images == 'string' && typeof obj[images] == 'function') { 238 // Call the method 239 obj[images](options); 240 241 // No need to do anything further 242 return; 243 } 244 245 // Merge the old options with the new 246 options = $.extend(obj.options, options); 247 248 // Remove the old instance 249 obj.destroy(true); 250 } 251 252 obj = new Backstretch(this, images, options); 253 $this.data('backstretch', obj); 254 }); 255 }; 256 257 // If no element is supplied, we'll attach to body 258 $.backstretch = function (images, options) { 259 // Return the instance 260 return $('body') 261 .backstretch(images, options) 262 .data('backstretch'); 263 }; 264 265 // Custom selector 266 $.expr[':'].backstretch = function(elem) { 267 return $(elem).data('backstretch') !== undefined; 268 }; 269 270 /* DEFAULTS 271 * ========================= */ 272 273 $.fn.backstretch.defaults = { 274 centeredX: true // Should we center the image on the X axis? 275 , centeredY: true // Should we center the image on the Y axis? 276 , duration: 5000 // Amount of time in between slides (if slideshow) 277 , fade: 0 // Speed of fade transition between slides 278 }; 279
280 /* STYLES 281 * 282 * Baked-in styles that we'll apply to our elements. 283 * In an effort to keep the plugin simple, these are not exposed as options. 284 * That said, anyone can override these in their own stylesheet. 285 * ========================= */ 286 var styles = { 287 wrap: { 288 left: 0 289 , top: 0 290 , overflow: 'hidden' 291 , margin: 0 292 , padding: 0 293 , height: '100%' 294 , width: '100%' 295 , zIndex: -999999 296 } 297 , img: { 298 position: 'absolute' 299 , display: 'none' 300 , margin: 0 301 , padding: 0 302 , border: 'none' 303 , width: 'auto' 304 , height: 'auto' 305 , maxHeight: 'none' 306 , maxWidth: 'none' 307 , zIndex: -999999 308 } 309 }; 310 311 /* CLASS DEFINITION 312 * ========================= */ 313 var Backstretch = function (container, images, options) { 314 this.options = $.extend({}, $.fn.backstretch.defaults, options || {}); 315 316 /* In its simplest form, we allow Backstretch to be called on an image path. 317 * e.g. $.backstretch('/path/to/image.jpg') 318 * So, we need to turn this back into an array. 319 */ 320 this.images = $.isArray(images) ? images : [images]; 321 322 // Preload images 323 $.each(this.images, function () { 324 $('<img />')[0].src = this; 325 }); 326 327 // Convenience reference to know if the container is body. 328 this.isBody = container === document.body; 329 330 /* We're keeping track of a few different elements 331 * 332 * Container: the element that Backstretch was called on. 333 * Wrap: a DIV that we place the image into, so we can hide the overflow. 334 * Root: Convenience reference to help calculate the correct height. 335 */ 336 this.$container = $(container); 337 this.$root = this.isBody ? supportsFixedPosition ? $(window) : $(document) : this.$container; 338 339 // Don't create a new wrap if one already exists (from a previous instance of Backstretch) 340 var $existing = this.$container.children(".backstretch").first(); 341 this.$wrap = $existing.length ? $existing : $('<div class="backstretch"></div>').css(styles.wrap).appendTo(this.$container); 342 343 // Non-body elements need some style adjustments 344 if (!this.isBody) { 345 // If the container is statically positioned, we need to make it relative, 346 // and if no zIndex is defined, we should set it to zero. 347 var position = this.$container.css('position') 348 , zIndex = this.$container.css('zIndex'); 349 350 this.$container.css({ 351 position: position === 'static' ? 'relative' : position 352 , zIndex: zIndex === 'auto' ? 0 : zIndex 353 , background: 'none' 354 }); 355 356 // Needs a higher z-index 357 this.$wrap.css({zIndex: -999998}); 358 } 359 360 // Fixed or absolute positioning? 361 this.$wrap.css({ 362 position: this.isBody && supportsFixedPosition ? 'fixed' : 'absolute' 363 }); 364 365 // Set the first image 366 this.index = 0; 367 this.show(this.index); 368 369 // Listen for resize 370 $(window).on('resize.backstretch', $.proxy(this.resize, this)) 371 .on('orientationchange.backstretch', $.proxy(function () { 372 // Need to do this in order to get the right window height 373 if (this.isBody && window.pageYOffset === 0) { 374 window.scrollTo(0, 1); 375 this.resize(); 376 } 377 }, this)); 378 }; 379 380 /* PUBLIC METHODS 381 * ========================= */ 382 Backstretch.prototype = { 383 resize: function () { 384 try { 385 var bgCSS = {left: 0, top: 0} 386 , rootWidth = this.isBody ? this.$root.width() : this.$root.innerWidth() 387 , bgWidth = rootWidth 388 , rootHeight = this.isBody ? ( window.innerHeight ? window.innerHeight : this.$root.height() ) : this.$root.innerHeight() 389 , bgHeight = bgWidth / this.$img.data('ratio') 390 , bgOffset; 391 392 // Make adjustments based on image ratio 393 if (bgHeight >= rootHeight) { 394 bgOffset = (bgHeight - rootHeight) / 2; 395 if(this.options.centeredY) { 396 bgCSS.top = '-' + bgOffset + 'px'; 397 } 398 } else { 399 bgHeight = rootHeight; 400 bgWidth = bgHeight * this.$img.data('ratio'); 401 bgOffset = (bgWidth - rootWidth) / 2; 402 if(this.options.centeredX) { 403 bgCSS.left = '-' + bgOffset + 'px'; 404 } 405 } 406 407 this.$wrap.css({width: rootWidth, height: rootHeight}) 408 .find('img:not(.deleteable)').css({width: bgWidth, height: bgHeight}).css(bgCSS); 409 } catch(err) { 410 // IE7 seems to trigger resize before the image is loaded.
411 // This try/catch block is a hack to let it fail gracefully. 412 } 413 414 return this; 415 } 416 417 // Show the slide at a certain position 418 , show: function (newIndex) { 419 420 // Validate index 421 if (Math.abs(newIndex) > this.images.length - 1) { 422 return; 423 } 424 425 // Vars 426 var self = this 427 , oldImage = self.$wrap.find('img').addClass('deleteable') 428 , evtOptions = { relatedTarget: self.$container[0] }; 429 430 // Trigger the "before" event 431 self.$container.trigger($.Event('backstretch.before', evtOptions), [self, newIndex]); 432 433 // Set the new index 434 this.index = newIndex; 435 updateSliderMenu(newIndex); 436 // Pause the slideshow 437 clearInterval(self.interval); 438 439 // New image 440 self.$img = $('<img />') 441 .css(styles.img) 442 .bind('load', function (e) { 443 var imgWidth = this.width || $(e.target).width() 444 , imgHeight = this.height || $(e.target).height(); 445 446 // Save the ratio 447 $(this).data('ratio', imgWidth / imgHeight); 448 449 // Show the image, then delete the old one 450 // "speed" option has been deprecated, but we want backwards compatibilty 451 $(this).fadeIn(self.options.speed || self.options.fade, function () { 452 oldImage.remove(); 453 454 // Resume the slideshow 455 if (!self.paused) { 456 self.cycle(); 457 } 458 459 460 461 462 // Trigger the "after" and "show" events 463 // "show" is being deprecated 464 $(['after', 'show']).each(function () { 465 self.$container.trigger($.Event('backstretch.' + this, evtOptions), [self, newIndex]); 466 }); 467 }); 468 469 // Resize 470 self.resize(); 471 }) 472 .appendTo(self.$wrap); 473 474 // Hack for IE img onload event 475 self.$img.attr('src', self.images[newIndex]); 476 return self; 477 } 478 479 , next: function () { 480 // Next slide 481 482 return this.show(this.index < this.images.length - 1 ? this.index + 1 : 0); 483 } 484 485 , prev: function () { 486 // Previous slide 487 return this.show(this.index === 0 ? this.images.length - 1 : this.index - 1); 488 } 489 490 , pause: function () { 491 // Pause the slideshow 492 this.paused = true; 493 return this; 494 } 495 496 , resume: function () { 497 // Resume the slideshow 498 this.paused = false; 499 this.next(); 500 return this; 501 } 502 503 , cycle: function () { 504 // Start/resume the slideshow 505 if(this.images.length > 1) { 506 // Clear the interval, just in case 507 clearInterval(this.interval); 508 509 this.interval = setInterval($.proxy(function () { 510 // Check for paused slideshow 511 if (!this.paused) { 512 this.next(); 513 } 514 }, this), this.options.duration); 515 } 516 return this; 517 } 518
vendor: 2,463 bytes, lines 519-585
519 , destroy: function (preserveBackground) { 520 // Stop the resize events 521 $(window).off('resize.backstretch orientationchange.backstretch'); 522 523 // Clear the interval 524 clearInterval(this.interval); 525 526 // Remove Backstretch 527 if(!preserveBackground) { 528 this.$wrap.remove(); 529 } 530 this.$container.removeData('backstretch'); 531 } 532 }; 533 534 /* SUPPORTS FIXED POSITION? 535 * 536 * Based on code from jQuery Mobile 1.1.0 537 * http://jquerymobile.com/ 538 * 539 * In a nutshell, we need to figure out if fixed positioning is supported. 540 * Unfortunately, this is very difficult to do on iOS, and usually involves 541 * injecting content, scrolling the page, etc.. It's ugly. 542 * jQuery Mobile uses this workaround. It's not ideal, but works. 543 * 544 * Modified to detect IE6 545 * ========================= */ 546 547 var supportsFixedPosition = (function () { 548 var ua = navigator.userAgent 549 , platform = navigator.platform 550 // Rendering engine is Webkit, and capture major version 551 , wkmatch = ua.match( /AppleWebKit\/([0-9]+)/ ) 552 , wkversion = !!wkmatch && wkmatch[ 1 ] 553 , ffmatch = ua.match( /Fennec\/([0-9]+)/ ) 554 , ffversion = !!ffmatch && ffmatch[ 1 ] 555 , operammobilematch = ua.match( /Opera Mobi\/([0-9]+)/ ) 556 , omversion = !!operammobilematch && operammobilematch[ 1 ] 557 , iematch = ua.match( /MSIE ([0-9]+)/ ) 558 , ieversion = !!iematch && iematch[ 1 ]; 559 560 return !( 561 // iOS 4.3 and older : Platform is iPhone/Pad/Touch and Webkit version is less than 534 (ios5) 562 ((platform.indexOf( "iPhone" ) > -1 || platform.indexOf( "iPad" ) > -1 || platform.indexOf( "iPod" ) > -1 ) && wkversion && wkversion < 534) || 563 564 // Opera Mini 565 (window.operamini && ({}).toString.call( window.operamini ) === "[object OperaMini]") || 566 (operammobilematch && omversion < 7458) || 567 568 //Android lte 2.1: Platform is Android and Webkit version is less than 533 (Android 2.2) 569 (ua.indexOf( "Android" ) > -1 && wkversion && wkversion < 533) || 570 571 // Firefox Mobile before 6.0 - 572 (ffversion && ffversion < 6) || 573 574 // WebOS less than 3 575 ("palmGetResource" in window && wkversion && wkversion < 534) || 576 577 // MeeGo 578 (ua.indexOf( "MeeGo" ) > -1 && ua.indexOf( "NokiaBrowser/8.5.0" ) > -1) || 579 580 // IE6 581 (ieversion && ieversion <= 6) 582 ); 583 }()); 584 585}(jQuery, window));
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.