[
  {
    "path": ".editorconfig",
    "content": "# http://editorconfig.org\nroot = true\n\n[*]\nindent_style = space\nindent_size = 2\nend_of_line = lf\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_newline = true\n\n[*.md]\ntrim_trailing_whitespace = false\n"
  },
  {
    "path": ".gitignore",
    "content": ".DS_Store\n*/.DS_Store\n\n*.pnproj\n.bundle\n_preview_README.html\n\nnode_modules\n./dist\ntest/temp\ntmp\ndocs\n.DS_Store\nnpm-debug.log\ncoverage\nreport\n"
  },
  {
    "path": ".jshintrc",
    "content": "{\n  \"node\": true,\n  \"browser\": true,\n  \"esnext\": true,\n  \"bitwise\": true,\n  \"camelcase\": true,\n  \"curly\": true,\n  \"eqeqeq\": true,\n  \"immed\": true,\n  \"indent\": 2,\n  \"latedef\": true,\n  \"newcap\": true,\n  \"noarg\": true,\n  \"noempty\": true,\n  \"nonew\": true,\n  \"plusplus\": false,\n  \"quotmark\": \"*\",\n  \"regexp\": true,\n  \"undef\": true,\n  \"unused\": true,\n  \"strict\": false,\n  \"maxdepth\": 3,\n  \"trailing\": true,\n  \"smarttabs\": true,\n  \"onevar\": false,\n  \"jquery\": true,\n  \"globals\": {\n    \"require\": true,\n    \"define\": true,\n    \"describe\": true,\n    \"it\": true,\n    \"before\": true,\n    \"after\": true,\n    \"beforeEach\": true,\n    \"afterEach\": true,\n    \"alert\": true\n  }\n}\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "See: [https://github.com/house9/jquery-iframe-auto-height#plugin-development](https://github.com/house9/jquery-iframe-auto-height#plugin-development)\n"
  },
  {
    "path": "CONTRIBUTORS.md",
    "content": "# CONTRIBUTORS\n\n* aaron manela (https://github.com/aaronmanela)\n* adamjgray (https://github.com/adamjgray)\n* Bruno Wego (https://github.com/brunowego)\n* ChristineP2 (https://github.com/ChristineP2)\n* genesos (https://github.com/genesos)\n* Hideki Abe (https://github.com/hideki-a)\n* janmas (https://github.com/janmas)\n* jbreton (https://github.com/jbreton)\n* jcaspian (https://github.com/jcaspian)\n* Jens Bissinger (https://github.com/bsingr)\n* Jesse House (https://github.com/house9)\n* Kees C. Bakker (https://github.com/KeesCBakker)\n* Lawrence (https://github.com/mindmelting)\n* Mmjavellana (https://github.com/Mmjavellana)\n* NATHAN SMITH (http://sonspring.com/)\n* Patrick Clark (https://github.com/hellopat)\n* SLaks (https://github.com/SLaks)\n* yiqing-95 (https://github.com/yiqing-95)\n"
  },
  {
    "path": "Gruntfile.js",
    "content": "/*global module:false*/\nmodule.exports = function (grunt) {\n  'use strict';\n\n  require('time-grunt')(grunt);\n\n  var config = {\n    // Metadata.\n    pkg: grunt.file.readJSON('package.json'),\n    banner: '/*! <%= pkg.name %> - v<%= pkg.version %>\\n' +\n      ' *  Release on: <%= grunt.template.today(\"yyyy-mm-dd\") %>\\n' +\n      '<%= pkg.homepage ? \" *  \" + pkg.homepage + \"\\\\n\" : \"\" %>' +\n      ' *  Copyright (c) <%= grunt.template.today(\"yyyy\") %> <%= pkg.author.name %>\\n' +\n      ' *  Licensed <%= pkg.license %> */\\n',\n  };\n\n  var path = require('path');\n\n  require('load-grunt-config')(grunt, {\n    init: true,\n    configPath: path.join(process.cwd(), 'tasks'),\n    config: config,\n    jitGrunt: {\n      changelog: 'grunt-conventional-changelog'\n    }\n  });\n};\n"
  },
  {
    "path": "README-legacy.md",
    "content": "#  jQuery iframe auto height plugin\n\n## Alternatives:\n\nYou may want to consider one of these alternative solutions for your iframe resizing needs?\n\n* Iframe-resizer\n  * [http://davidjbradshaw.github.io/iframe-resizer/](http://davidjbradshaw.github.io/iframe-resizer/)\n  * jQuery pluggin for cross domain sizing iframes to content with support for window resizing\n* easyXDM\n  * [http://easyxdm.net/wp/2010/03/17/resize-iframe-based-on-content/](http://easyxdm.net/wp/2010/03/17/resize-iframe-based-on-content/)\n  * Resize iframe based on content\n* jQuery resize plugin\n  * [http://benalman.com/projects/jquery-resize-plugin/](http://benalman.com/projects/jquery-resize-plugin/)\n\n## ATTENTION\n\nThis plugin will NOT work if the iframe contains a page from another domain, use one of the alternate libraries above if you need cross domain resize.\n\n## Usage:\n\n* include jquery in your page\n* include the latest version from the [release directory](https://github.com/house9/jquery-iframe-auto-height/tree/master/release); minified or standard\n* use the variable jQuery or its alias $ and pass a selector that matches one or more iframes\n\n`jQuery('iframe').iframeAutoHeight();` will resize all iframes on the page\n\n`$('iframe.photo').iframeAutoHeight();` will resize only iframes with the css class photo\n\ncode can be called from within $(document).ready or after iframes are declared in markup\n\n```\n<!-- with document ready, most likely in the html head -->\n<script>\n  $(document).ready(function () {\n    $('iframe').iframeAutoHeight({debug: true});\n  });\n</script>\n\n<!-- inline, after the iframe -->\n<iframe src=\"my_iframe.html\" class=\"auto-height\" scrolling=\"no\" frameborder=\"0\"></iframe>\n<script>\n  $('iframe.auto-height').iframeAutoHeight({minHeight: 240});\n</script>\n```\n\n### Note\n\n* jQuery 1.9.0 and up: you must add the $.browser plugin feature - [https://raw.github.com/house9/jquery-iframe-auto-height/master/release/jquery.browser.js](https://raw.github.com/house9/jquery-iframe-auto-height/master/release/jquery.browser.js)\n  * download and include after the jquery plugin and before the iframe plugin\n* 1.7.1 and below: you can also install using jamjs - [http://jamjs.org/packages/#/details/jquery-iframe-auto-height](http://jamjs.org/packages/#/details/jquery-iframe-auto-height)\n\n### Options\n\n* callback: function\n  * Default empty function\n  * Optionally define a callback function (in this case inline) that will do something with the callbackObject.newFrameHeight value. This can for instance be used with easyXDM to alert another domain that the frame has changed height.\n  * Example: `$('iframe').iframeAutoHeight({callback: function(callbackObject) { alert(callbackObject.newFrameHeight);} });`\n  * you can also access the current iframe jquery wrapper object use the `this` keyword\n  * for example: `callback: function(callbackObject) { alert(callbackObject.newFrameHeight + \" and the iframe href is:\" + $(this).attr('src')); } `\n* debug: boolean\n  * Default is false\n  * Will log some internal information to the console, if available\n  * Example: `$('iframe').iframeAutoHeight({debug: true})`\n* heightOffset: integer\n  * Default is 0\n  * Unit is pixels\n  * Optionally add some buffer to the bottom\n  * Example: `$('iframe').iframeAutoHeight({heightOffset: 20});`\n* minHeight: integer\n  * Default is 0\n  * Unit is pixels\n  * Sets the iframe height to this value if the calculated value is less\n  * Example: `$('iframe').iframeAutoHeight({minHeight: 200});`\n* animate: boolean\n  * Default is false\n  * Uses [jquery animate](http://api.jquery.com/animate/) with duration of 500 when resizing the iframe\n  * Example: `$('iframe').iframeAutoHeight({animate: true});`\n* resetToMinHeight: boolean\n  * Default is false\n  * hard set the iframe height to the minHeight before re-sizing\n* triggerFunctions: Array of functions\n  * Default is an empty array\n  * Optionally define 1 or more functions that will have access to the resize method\n  * can be used to resize the iframe from external events such as click or window resize - see examples below\n* heightCalculationOverrides: Array of 2 element arrays\n  * Default is an empty array\n  * Optionally re-define the height calculation method(s)\n  * override the default implementation or just override specific browsers\n  * Example: `$('iframe').iframeAutoHeight({strategyOverrides: [{ browser: 'mozilla', calculation: function () { return 2000; }}]);`\n  * The `browser` key should be one of 'webkit', 'mozilla', 'msie', 'opera' or 'default', see [http://api.jquery.com/jQuery.browser/](http://api.jquery.com/jQuery.browser/)\n  * The `calculation` key should be a function, usually with the signature `(iframe, $iframeBody, options, browser)`\n  * see more examples below\n\n## Examples:\n\n### triggerFunctions\n```\n// fire iframe resize when window is resized\nvar windowResizeFunction = function (resizeFunction, iframe) {\n  $(window).resize(function () {\n    console.debug(\"window resized - firing resizeHeight on iframe\");\n    resizeFunction(iframe);\n  });\n};\n\n// fire iframe resize when a link is clicked\nvar clickFunction = function (resizeFunction, iframe) {\n  $('a').click(function () {\n    $(iframe).contents().find('body').html(''); // clear content of iframe\n    console.debug(\"link clicked - firing resizeHeight on iframe\");\n    resizeFunction(iframe);\n  });\n};\n\n$('iframe').iframeAutoHeight({\n  debug: true,\n  triggerFunctions: [\n    windowResizeFunction,\n    clickFunction\n  ]\n});\n\n```\n\n### heightCalculationOverrides\n```\n// override all browser calculations using default\n$('iframe').iframeAutoHeight({\n  debug: true,\n  heightCalculationOverrides: [{\n    browser: 'default',\n    calculation: function (iframe, $iframeBody, options, browser) {\n      return 1000;\n    }\n  }]\n});\n\n// mozilla seems to be problematic for some\n// this is the usual work around, but it breaks demo pages so not used in plugin\n$('iframe').iframeAutoHeight({\n  debug: true,\n  heightCalculationOverrides: [{\n    browser: 'mozilla',\n    calculation: function (iframe, $iframeBody, options, browser) {\n      // since the jquery browser is passed in you can also check specific versions if desired\n      return iframe.contentDocument.documentElement.scrollHeight + options.heightOffset;\n    }\n  }]\n});\n```\n\n## Summary:\n\noriginal code by NATHAN SMITH; see [http://sonspring.com/journal/jquery-iframe-sizing](http://sonspring.com/journal/jquery-iframe-sizing)\n\nThe plugin will resize an iframe to the height of its contents\n\nWill NOT work if the iframe contains a page from another domain\n\nWhen viewing code locally, i.e. file:///, Google chrome will throw security errors;\nWorks fine in Firefox locally and should work ok in all browsers when served from the same domain.\n\nAll testing is done manually:\n\n1.6.0 and 1.7.0 have not been officially tested, but the changes were minor\n1.8.0 has had minor testing\n\n* IE6 on windows XP (1.4.1, 1.5.0)\n* IE8 on windows XP (1.4.1, 1.5.0)\n* IE9 on windows Vista/W7 (1.4.1, 1.5.0)\n* Firefox 5 on windows XP (1.4.1, 1.5.0)\n* Firefox 6 on W7 (1.5.0)\n* Chrome 13 on windows XP (1.4.1, 1.5.0)\n* Firefox 5.1 on Mac (1.4.1, 1.5.0)\n* Firefox 6.0 on Mac (1.5.0)\n* Firefox 15.1 on Mac (1.8.0)\n* Chrome 13 on Mac (1.4.1, 1.5.0)\n* Chrome 21 on Mac (1.8.0)\n* Safari 5 on Mac (1.4.1, 1.5.0)\n* Opera 11.5 on Mac (1.4.1)\n* Firefox 4 on Ubuntu 11.04 (1.4.1)\n* Chrome 11 on Ubuntu 11.04 (1.4.1)\n\n## License:\n\nThe plugin: release/jquery.iframe-auto-height.plugin.js\n\n* [The Unlicense](http://unlicense.org) (aka: public domain)\n\nSee specific license for any other code included, i.e. jquery\n\n\n## Changelog:\n1.9.5 / 2014-05-17\n\n* Update the way that the initial resize happens\n * load event may never trigger if content is already loaded\n\n1.9.4 / 2014-05-14\n\n* maxHeight option\n\n1.9.3 / 2013-06-01\n\n* the url was bad - doh!\n\n1.9.2 / 2013-06-01\n\n* update url for jquery browser plugin, original repo was removed from github\n* jslint fixes\n\n1.9.1 / 2013-02-02\n\n* Add js alert warning if using jquery 1.9 and up, `$.browser` is needed\n\n1.9.0 / 2012-11-11\n\n* use the `$.browser.webkit` in-place of `$.browser.safari`, requires jquery 1.4 and up\n\n1.8.0 / 2012-09-22\n\n* new option - resetToMinHeight\n* new option - triggerFunctions\n* new option - heightCalculationOverrides\n\n1.7.1 / 2012-06-02\n\n* webkit browsers, don't set iframe.style.height to 0px on initial page load\n\n1.7.0 / 2012-06-02\n\n* adds the animate option\n\n1.6.0 / 2012-01-07\n\n* callback function invoking now allows access to the iframe in the callback\n\n1.5.0 / 2011-08-18\n\n* add minHeight option, refactoring height calculation\n\n1.4.0 / 2011-07-25\n\n* add debug option, small refactoring and minified version\n\n1.3.0 / 2011-07-17\n\n* fix issue on Webkit (Google Chrome & Safari) when tall iframe links to short iframe\n\n1.2.0 / 2011-07-08\n\n* If the iframe document is read in quirks mode, fixed a problem with IE not applying the correct height.\n\n1.1.0 / 2011-05-29\n\n* added the ability to pass in a callback function\n\n1.0.0 / 2010-10-22 / Initial release\n\n* converted code to plugin\n* match on specified selector instead of all iframes on page\n\n## Authors\n\n* NATHAN SMITH (http://sonspring.com/)\n* Jesse House (https://github.com/house9)\n* aaron manela (https://github.com/aaronmanela)\n* Hideki Abe (https://github.com/hideki-a)\n* Patrick Clark (https://github.com/hellopat)\n* ChristineP2 (https://github.com/ChristineP2)\n* Mmjavellana (https://github.com/Mmjavellana)\n* yiqing-95 (https://github.com/yiqing-95)\n* jcaspian (https://github.com/jcaspian)\n* adamjgray (https://github.com/adamjgray)\n* Jens Bissinger (https://github.com/dpree)\n* jbreton (https://github.com/jbreton)\n* mindmelting (https://github.com/mindmelting)\n\n## TODO List:\n\n* create a bower package\n* publish demo site to heroku\n* automated tests\n\n## Patches:\n\nThe 'master' source file is located in the demo_on_rails directory [here](https://github.com/house9/jquery-iframe-auto-height/tree/master/demo_on_rails/app/assets/javascripts/src/jquery.iframe-auto-height.plugin.js)\nAll html files in the [demo directory](https://github.com/house9/jquery-iframe-auto-height/tree/master/demo) point to this 'master' file.\nWhen modifying the code you can view changes in the static html files in demo or fire up the rails app in demo_on_rails.\n\nIf you have ruby installed you might want to utilize some of these tools, first run `bundle` to install needed gems\n\njslint checking\n\n`jslint demo_on_rails/app/assets/javascripts/src/jquery.iframe-auto-height.plugin.js`\n\nbefore the rails app was part of this project I used webrick for testing the static html files in webkit browsers,\nbut using localhost and file:/// are problematic, webrick can use your local machine ip address and any port you want\n\n`ruby webrick.rb --port 3333 --bind 192.168.0.5 --docroot .`\n\nBuilding the release\n\nFirst update the version.rb file, then run the ruby command. The script will put two files in the release directory,\none minified and one full. A small amount of search and replace takes place on the comment block for output files.\n\n`ruby releaser.rb`\n\n\n## Known Issues\n\n* with IE8 it seems better to not specify the height attribute on the iframe\n\n## Issues\n\nIf you come across issues feel free to post them using the 'Issues' tab above (github)\n\n\n\n\n\n"
  },
  {
    "path": "README.md",
    "content": "#  jQuery iframe auto height plugin\n\n## Alternatives:\n\nYou may want to consider one of these alternative solutions for your iframe resizing needs?\n\n* Iframe-resizer\n  * [http://davidjbradshaw.github.io/iframe-resizer/](http://davidjbradshaw.github.io/iframe-resizer/)\n  * jQuery pluggin for cross domain sizing iframes to content with support for window resizing\n* easyXDM\n  * [http://easyxdm.net/wp/2010/03/17/resize-iframe-based-on-content/](http://easyxdm.net/wp/2010/03/17/resize-iframe-based-on-content/)\n  * Resize iframe based on content\n* jQuery resize plugin\n  * [http://benalman.com/projects/jquery-resize-plugin/](http://benalman.com/projects/jquery-resize-plugin/)\n\n# ATTENTION\n\nThis plugin will NOT work if the iframe contains a page from another domain, use one of the alternate libraries above if you need cross domain resize.\n\n\n## Installation\n\n```\n$ npm install --save-dev jquery-iframe-auto-height\n```\n\n* There is no longer a NuGet package, please use bower for all javascript packaging needs.\n\nYou will find versions before 2.0.0 in the release directory,\nall newer versions are handled using bower and the packaged file is in the [dist](https://github.com/house9/jquery-iframe-auto-height/blob/master/dist/) directory.\n\n### Notes\n\n* jQuery 1.9.0 and up: you must add the $.browser plugin feature\n  * [https://raw.github.com/house9/jquery-iframe-auto-height/master/vendor/jquery.browser.js](https://raw.github.com/house9/jquery-iframe-auto-height/master/vendor/jquery.browser.js)\n  * download and include after the jquery plugin and before the iframe plugin\n  * this file is also included in the bower main section\n\n## Usage\n\n* include jquery in your page\n* include the latest version using bower or the grab the current file from the `dist` directory\n* use the variable jQuery or its alias $ and pass a selector that matches one or more iframes\n\n* `jQuery('iframe').iframeAutoHeight();`\n  * will resize all iframes on the page\n* `$('iframe.photo').iframeAutoHeight();`\n  * will resize only iframes with the css class photo\n* code can be called from within `$(document).ready` or after iframes are declared in markup\n\n```\n<!-- with document ready, most likely in the html head -->\n<script>\n  $(document).ready(function () {\n    $('iframe').iframeAutoHeight({debug: true});\n  });\n</script>\n\n<!-- inline, after the iframe -->\n<iframe src=\"my_iframe.html\" class=\"auto-height\" scrolling=\"no\" frameborder=\"0\"></iframe>\n<script>\n  $('iframe.auto-height').iframeAutoHeight({minHeight: 240});\n</script>\n```\n\n## Documentation\n\n### Options\n\n* callback: function\n  * Default empty function\n  * Optionally define a callback function (in this case inline) that will do something with the callbackObject.newFrameHeight value. This can for instance be used with easyXDM to alert another domain that the frame has changed height.\n  * Example: `$('iframe').iframeAutoHeight({callback: function(callbackObject) { alert(callbackObject.newFrameHeight);} });`\n  * you can also access the current iframe jquery wrapper object use the `this` keyword\n  * for example: `callback: function(callbackObject) { alert(callbackObject.newFrameHeight + \" and the iframe href is:\" + $(this).attr('src')); } `\n* debug: boolean\n  * Default is false\n  * Will log some internal information to the console, if available\n  * Example: `$('iframe').iframeAutoHeight({debug: true})`\n* heightOffset: integer\n  * Default is 0\n  * Unit is pixels\n  * Optionally add some buffer to the bottom\n  * Example: `$('iframe').iframeAutoHeight({heightOffset: 20});`\n* minHeight: integer\n  * Default is 0\n  * Unit is pixels\n  * Sets the iframe height to this value if the calculated value is less\n  * Example: `$('iframe').iframeAutoHeight({minHeight: 200});`\n* animate: boolean\n  * Default is false\n  * Uses [jquery animate](http://api.jquery.com/animate/) with duration of 500 when resizing the iframe\n  * Example: `$('iframe').iframeAutoHeight({animate: true});`\n* resetToMinHeight: boolean\n  * Default is false\n  * hard set the iframe height to the minHeight before re-sizing\n* triggerFunctions: Array of functions\n  * Default is an empty array\n  * Optionally define 1 or more functions that will have access to the resize method\n  * can be used to resize the iframe from external events such as click or window resize - see examples below\n* heightCalculationOverrides: Array of 2 element arrays\n  * Default is an empty array\n  * Optionally re-define the height calculation method(s)\n  * override the default implementation or just override specific browsers\n  * Example: `$('iframe').iframeAutoHeight({strategyOverrides: [{ browser: 'mozilla', calculation: function () { return 2000; }}]);`\n  * The `browser` key should be one of 'webkit', 'mozilla', 'msie', 'opera' or 'default', see [http://api.jquery.com/jQuery.browser/](http://api.jquery.com/jQuery.browser/)\n  * The `calculation` key should be a function, usually with the signature `(iframe, $iframeBody, options, browser)`\n  * see more examples below\n\n### Examples:\n\n#### triggerFunctions\n\n```\n// fire iframe resize when window is resized\nvar windowResizeFunction = function (resizeFunction, iframe) {\n  $(window).resize(function () {\n    console.debug(\"window resized - firing resizeHeight on iframe\");\n    resizeFunction(iframe);\n  });\n};\n\n// fire iframe resize when a link is clicked\nvar clickFunction = function (resizeFunction, iframe) {\n  $('a').click(function () {\n    $(iframe).contents().find('body').html(''); // clear content of iframe\n    console.debug(\"link clicked - firing resizeHeight on iframe\");\n    resizeFunction(iframe);\n  });\n};\n\n$('iframe').iframeAutoHeight({\n  debug: true,\n  triggerFunctions: [\n    windowResizeFunction,\n    clickFunction\n  ]\n});\n\n```\n\n#### heightCalculationOverrides\n\n```\n// override all browser calculations using default\n$('iframe').iframeAutoHeight({\n  debug: true,\n  heightCalculationOverrides: [{\n    browser: 'default',\n    calculation: function (iframe, $iframeBody, options, browser) {\n      return 1000;\n    }\n  }]\n});\n\n// mozilla seems to be problematic for some\n// this is the usual work around, but it breaks demo pages so not used in plugin\n$('iframe').iframeAutoHeight({\n  debug: true,\n  heightCalculationOverrides: [{\n    browser: 'mozilla',\n    calculation: function (iframe, $iframeBody, options, browser) {\n      // since the jquery browser is passed in you can also check specific versions if desired\n      return iframe.contentDocument.documentElement.scrollHeight + options.heightOffset;\n    }\n  }]\n});\n```\n\n## Plugin development\n\n* fork the repo\n* create a new branch\n* run `grunt watch`\n* modify the file `src/jquery-iframe-auto-height.js` as needed\n  * grunt will auto compile it to the dist directory\n* view your changes in the browser\n  * run `python -m SimpleHTTPServer 8000` or another web server\n  * open in a browser - `http://localhost:8000/demo/`\n* verify all pages still function properly in as many browers as possible\n* Add your name to the CONTRIBUTORS.md file\n  * alphabetical order\n* submit a Pull Request (PR)\n  * include a list of OS / browser / version that the changes were tested in as part of the PR\n\n## License\n\n* [The Unlicense](http://unlicense.org) (aka: public domain)\n\n## Changelog:\n\n2.0.0 / 2015-06-28\n\n* Changes entire repo directory structure\n  * Use grunt for building and packaging code\n  * Remove rails demo, use static html instead\n  * Include jquery.browser.js in bower main\n* Add chrome to strategyKeys array\n* use `window.parent` instead of `window.top.document`\n\n1.9.5 / 2014-05-17\n\n* Update the way that the initial resize happens\n * load event may never trigger if content is already loaded\n\n1.9.4 / 2014-05-14\n\n* maxHeight option\n\n1.9.3 / 2013-06-01\n\n* the url was bad - doh!\n\n1.9.2 / 2013-06-01\n\n* update url for jquery browser plugin, original repo was removed from github\n* jslint fixes\n\n1.9.1 / 2013-02-02\n\n* Add js alert warning if using jquery 1.9 and up, `$.browser` is needed\n\n1.9.0 / 2012-11-11\n\n* use the `$.browser.webkit` in-place of `$.browser.safari`, requires jquery 1.4 and up\n\n1.8.0 / 2012-09-22\n\n* new option - resetToMinHeight\n* new option - triggerFunctions\n* new option - heightCalculationOverrides\n\n1.7.1 / 2012-06-02\n\n* webkit browsers, don't set iframe.style.height to 0px on initial page load\n\n1.7.0 / 2012-06-02\n\n* adds the animate option\n\n1.6.0 / 2012-01-07\n\n* callback function invoking now allows access to the iframe in the callback\n\n1.5.0 / 2011-08-18\n\n* add minHeight option, refactoring height calculation\n\n1.4.0 / 2011-07-25\n\n* add debug option, small refactoring and minified version\n\n1.3.0 / 2011-07-17\n\n* fix issue on Webkit (Google Chrome & Safari) when tall iframe links to short iframe\n\n1.2.0 / 2011-07-08\n\n* If the iframe document is read in quirks mode, fixed a problem with IE not applying the correct height.\n\n1.1.0 / 2011-05-29\n\n* added the ability to pass in a callback function\n\n1.0.0 / 2010-10-22 / Initial release\n\n* converted code to plugin\n* match on specified selector instead of all iframes on page\n\n## TODO List\n\n* Manual testing and documention of supported browser versions\n* Add specs to take screenshots\n  * Sauce Labs?\n* Add instructions for defect reporting\n  * code samples, screenshots, etc...\n\n## Props\n\nOriginal code by NATHAN SMITH; see [http://sonspring.com/journal/jquery-iframe-sizing](http://sonspring.com/journal/jquery-iframe-sizing)\n\n* see also [CONTRIBUTORS.md](https://github.com/house9/jquery-iframe-auto-height/blob/master/CONTRIBUTORS.md)\n"
  },
  {
    "path": "bower.json",
    "content": "{\n  \"name\": \"jquery-iframe-auto-height\",\n  \"version\": \"2.0.0\",\n  \"description\": \"jQuery plugin to set the height of an iframe to its contents height\",\n  \"main\": [\n    \"dist/jquery-iframe-auto-height.js\",\n    \"vendor/jquery.browser.js\"\n  ],\n  \"author\": {\n    \"name\": \"Jesse House\",\n    \"email\": \"mail@jessehouse.com\"\n  },\n  \"repository\": {\n    \"url\": \"https://github.com/house9/jquery-iframe-auto-height\",\n    \"type\": \"git\"\n  },\n  \"license\": \"MIT\",\n  \"dependencies\": {},\n  \"ignore\": [\n    \"**/.*\",\n    \"node_modules\",\n    \"bower_components\",\n    \"test\",\n    \"tests\"\n  ]\n}\n"
  },
  {
    "path": "demo/assets/application.css",
    "content": "/*\n * This is a manifest file that'll automatically include all the stylesheets available in this directory\n * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at\n * the top of the compiled file, but it's generally better to create a new file per style scope.\n\n\n * require_tree . \n*/\n/* line 1, ../../app/assets/stylesheets/layout.css.scss */\n* {\n  margin: 0;\n  padding: 0;\n}\n\n/* line 7, ../../app/assets/stylesheets/layout.css.scss */\na {\n  color: #33c;\n  font-weight: bold;\n}\n\n/* line 13, ../../app/assets/stylesheets/layout.css.scss */\nbody {\n  background: #fff;\n  color: #333;\n  font: 15px Arial, sans-serif;\n}\n\n/* line 20, ../../app/assets/stylesheets/layout.css.scss */\n#container {\n  margin: 0 auto;\n  padding: 20px 0 0;\n  width: 960px;\n}\n\n/* line 27, ../../app/assets/stylesheets/layout.css.scss */\nh1 {\n  font-size: 30px;\n  margin: 0 10px;\n  padding: 0 0 10px;\n  text-align: center;\n}\n\n/* line 35, ../../app/assets/stylesheets/layout.css.scss */\np {\n  background: #ffc;\n  border: 1px solid #999;\n  margin: 0 10px 20px;\n  padding: 10px;\n  text-align: center;\n}\n\n/* line 44, ../../app/assets/stylesheets/layout.css.scss */\niframe {\n  margin: 0 10px 20px;\n}\n\n/* line 49, ../../app/assets/stylesheets/layout.css.scss */\n.photo {\n  width: 940px;\n}\n\n/* line 54, ../../app/assets/stylesheets/layout.css.scss */\n.column {\n  float: left;\n  width: 220px;\n}\n\n/* line 60, ../../app/assets/stylesheets/layout.css.scss */\n.clear {\n  clear: both;\n  overflow: hidden;\n  width: 0;\n  height: 0;\n}\n\n/* line 68, ../../app/assets/stylesheets/layout.css.scss */\ndiv.p {\n  padding: 10px;\n}\n"
  },
  {
    "path": "demo/assets/iframe_content.css",
    "content": "* {\n  margin: 0;\n  padding: 0;\n}\n\nbody {\n  background: #ddd;\n  color: #333;\n  font: 11px Arial, sans-serif;\n  padding: 20px 20px 0;\n}\n\na {\n  color: #33c;\n  font-weight: bold;\n}\n\nimg {\n  display: block;\n}\n\nh2,\np {\n  padding: 0 0 20px;\n}\n\nh2 {\n  font-size: 15px;\n}\n\np {\n  line-height: 1.5;\n}\n"
  },
  {
    "path": "demo/assets/normalize.css",
    "content": "/*! normalize.css v2.1.3 | MIT License | git.io/normalize */\n\n/* ==========================================================================\n   HTML5 display definitions\n   ========================================================================== */\n\n/**\n * Correct `block` display not defined in IE 8/9.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n    display: block;\n}\n\n/**\n * Correct `inline-block` display not defined in IE 8/9.\n */\n\naudio,\ncanvas,\nvideo {\n    display: inline-block;\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n    display: none;\n    height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9.\n * Hide the `template` element in IE, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n    display: none;\n}\n\n/* ==========================================================================\n   Base\n   ========================================================================== */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n *    user zoom.\n */\n\nhtml {\n    font-family: sans-serif; /* 1 */\n    -ms-text-size-adjust: 100%; /* 2 */\n    -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n    margin: 0;\n}\n\n/* ==========================================================================\n   Links\n   ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n    background: transparent;\n}\n\n/**\n * Address `outline` inconsistency between Chrome and other browsers.\n */\n\na:focus {\n    outline: thin dotted;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\n\na:active,\na:hover {\n    outline: 0;\n}\n\n/* ==========================================================================\n   Typography\n   ========================================================================== */\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari 5, and Chrome.\n */\n\nh1 {\n    font-size: 2em;\n    margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9, Safari 5, and Chrome.\n */\n\nabbr[title] {\n    border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.\n */\n\nb,\nstrong {\n    font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari 5 and Chrome.\n */\n\ndfn {\n    font-style: italic;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\n\nhr {\n    -moz-box-sizing: content-box;\n    box-sizing: content-box;\n    height: 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n    background: #ff0;\n    color: #000;\n}\n\n/**\n * Correct font family set oddly in Safari 5 and Chrome.\n */\n\ncode,\nkbd,\npre,\nsamp {\n    font-family: monospace, serif;\n    font-size: 1em;\n}\n\n/**\n * Improve readability of pre-formatted text in all browsers.\n */\n\npre {\n    white-space: pre-wrap;\n}\n\n/**\n * Set consistent quote types.\n */\n\nq {\n    quotes: \"\\201C\" \"\\201D\" \"\\2018\" \"\\2019\";\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n    font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n    font-size: 75%;\n    line-height: 0;\n    position: relative;\n    vertical-align: baseline;\n}\n\nsup {\n    top: -0.5em;\n}\n\nsub {\n    bottom: -0.25em;\n}\n\n/* ==========================================================================\n   Embedded content\n   ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9.\n */\n\nimg {\n    border: 0;\n}\n\n/**\n * Correct overflow displayed oddly in IE 9.\n */\n\nsvg:not(:root) {\n    overflow: hidden;\n}\n\n/* ==========================================================================\n   Figures\n   ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari 5.\n */\n\nfigure {\n    margin: 0;\n}\n\n/* ==========================================================================\n   Forms\n   ========================================================================== */\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n    border: 1px solid #c0c0c0;\n    margin: 0 2px;\n    padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n    border: 0; /* 1 */\n    padding: 0; /* 2 */\n}\n\n/**\n * 1. Correct font family not being inherited in all browsers.\n * 2. Correct font size not being inherited in all browsers.\n * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.\n */\n\nbutton,\ninput,\nselect,\ntextarea {\n    font-family: inherit; /* 1 */\n    font-size: 100%; /* 2 */\n    margin: 0; /* 3 */\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\nbutton,\ninput {\n    line-height: normal;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.\n * Correct `select` style inheritance in Firefox 4+ and Opera.\n */\n\nbutton,\nselect {\n    text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n *    and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n *    `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n    -webkit-appearance: button; /* 2 */\n    cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n    cursor: default;\n}\n\n/**\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n    box-sizing: border-box; /* 1 */\n    padding: 0; /* 2 */\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome\n *    (include `-moz` to future-proof).\n */\n\ninput[type=\"search\"] {\n    -webkit-appearance: textfield; /* 1 */\n    -moz-box-sizing: content-box;\n    -webkit-box-sizing: content-box; /* 2 */\n    box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari 5 and Chrome\n * on OS X.\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n    -webkit-appearance: none;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n    border: 0;\n    padding: 0;\n}\n\n/**\n * 1. Remove default vertical scrollbar in IE 8/9.\n * 2. Improve readability and alignment in all browsers.\n */\n\ntextarea {\n    overflow: auto; /* 1 */\n    vertical-align: top; /* 2 */\n}\n\n/* ==========================================================================\n   Tables\n   ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n    border-collapse: collapse;\n    border-spacing: 0;\n}\n"
  },
  {
    "path": "demo/castle.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/iframe_content.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n  </head>\n  <body>\n    <div id=\"container\">\n      <p>\n        <a href=\"http://www.flickr.com/photos/grumbler/208896083\" target=\"_top\">\n          <img alt=\"http://www.flickr.com/photos/grumbler/208896083\" src=\"./assets/castle.jpg\">\n        </a>\n      </p>\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/form_1.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/iframe_content.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n  </head>\n  <body>\n    <div id=\"container\">\n      <h2>Form</h2>\n      <p>\n        Link:\n        <a href=\"./xsmall.html\">XS</a> |\n        <a href=\"./small.html\">S</a> |\n        <a href=\"./medium.html\">M</a> |\n        <a href=\"./large.html\">L</a> |\n        <a href=\"./xlarge.html\">XL</a> |\n        <a href=\"./xxlarge.html\">XXL</a>\n      </p>\n\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n\n      <form accept-charset=\"UTF-8\" action=\"./form_1_confirm.html\" method=\"GET\">\n        <input id=\"name\" name=\"name\" type=\"text\">\n        <input name=\"commit\" value=\"Submit\" type=\"submit\">\n      </form>\n\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/form_1_confirm.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/iframe_content.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n  </head>\n  <body>\n    <div id=\"container\">\n      <h2>Confirm</h2>\n      <p>\n        you submitted the form\n      </p>\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/index-callback.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/application.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n\n    <script src=\"http://code.jquery.com/jquery-1.11.3.js\"></script>\n    <script src=\"../vendor/jquery.browser.js\"></script>\n    <script src=\"../dist/jquery-iframe-auto-height.js\"></script>\n    <script>\n      jQuery(function() {\n        $('#xsmall-iframe').iframeAutoHeight({\n          debug: true,\n          minHeight: 420,\n          resetToMinHeight: true,\n          heightCalculationOverrides: [\n            {\n              browser: 'mozilla',\n              calculation: function() {\n                return 420;\n              }\n            }, {\n              browser: 'chrome',\n              calculation: function() {\n                return 120;\n              }\n            }, {\n              browser: 'webkit',\n              calculation: function() {\n                return 520;\n              }\n            }, {\n              browser: 'msie',\n              calculation: function() {\n                return 620;\n              }\n            }\n          ],\n          callback: function(callbackObject) {\n            return console.debug(\"CallBack: height='\" + callbackObject.newFrameHeight + \"' / iframe-id='\" + (jQuery(this).attr('id')) + \"'\");\n          }\n        });\n        $('#small-iframe').iframeAutoHeight({\n          debug: true,\n          minHeight: 120,\n          callback: function(callbackObject) {\n            return console.debug(\"CallBack: height='\" + callbackObject.newFrameHeight + \"' / iframe-id='\" + (jQuery(this).attr('id')) + \"'\");\n          },\n          triggerFunctions: [\n            function(resizeFunction, iframe) {\n              return $('#resize-clicker').click(function() {\n                $(iframe).contents().find('body').html('');\n                console.debug(\"clear content on small-iframe\");\n                return resizeFunction(iframe);\n              });\n            }\n          ]\n        });\n        return $('#medium-iframe').iframeAutoHeight({\n          debug: true,\n          callback: function(callbackObject) {\n            return console.debug(\"CallBack: height='\" + callbackObject.newFrameHeight + \"' / iframe-id='\" + (jQuery(this).attr('id')) + \"'\");\n          },\n          fireOnResize: true,\n          triggerFunctions: [\n            function(resizeFunction, iframe) {\n              return $(window).resize(function() {\n                console.debug(\"window resized - firing resizeHeight on iframe\");\n                return resizeFunction(iframe);\n              });\n            }\n          ]\n        });\n      });\n    </script>\n  </head>\n  <body>\n    <div id=\"container\">\n      <h1>\n        jQuery » iFrame Auto Height Plugin\n      </h1>\n      <p>\n        This <a href=\"http://jquery.com/\">jQuery</a> plugin sets the height on iframes based on their content.\n        <a href=\"http://github.com/house9/jquery-iframe-auto-height\">http://github.com/house9/jquery-iframe-auto-height</a>\n      </p>\n\n      <div style=\"clear:both\">\n        <div>\n          <div class=\"p\">\n            Callback Testing, check the console for debug messages<br>\n            x-small is using hardcoded heights by browser override\n          </div>\n        </div>\n        <div>\n          <iframe src=\"./xsmall.html\" class=\"column\" scrolling=\"no\" id=\"xsmall-iframe\" style=\"height: 420px;\" frameborder=\"0\"></iframe>\n\n          <iframe style=\"height: 230px;\" src=\"./small.html\" class=\"column\" scrolling=\"no\" id=\"small-iframe\" frameborder=\"0\"></iframe>\n\n          <iframe style=\"height: 501px;\" src=\"./medium.html\" class=\"column\" scrolling=\"no\" id=\"medium-iframe\" frameborder=\"0\"></iframe>\n        </div>\n\n        <div style=\"clear:both; line-height: 0px; font-size: 0px\">\n          &nbsp;\n        </div>\n        <p>\n          Clear iframe 2 (small-iframe) and then <a href=\"javascript:void(0)\" id=\"resize-clicker\">resize</a> it.\n        </p>\n      </div>\n\n      <div class=\"clear\">\n        &nbsp;\n      </div>\n      <p>\n        More: <a href=\"./\">Main</a> |\n        <a href=\"./index-with-pic.html\">Another Pic</a> |\n        <a href=\"./index-dynamic.html\">Dynamic</a> |\n        <a href=\"./index-min-height.html\">Min-Height</a> |\n        <a href=\"./index-callback.html\">Callback</a> |\n        <a href=\"./index-form.html\">Form</a>\n      </p>\n      <p>\n        Original code by Nathan Smith, see <a href=\"http://sonspring.com/journal/jquery-iframe-sizing\">original article</a>.\n      </p>\n      <div class=\"clear\">\n        &nbsp;\n      </div>\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/index-dynamic.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/application.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n\n    <script src=\"http://code.jquery.com/jquery-1.11.3.js\"></script>\n    <script src=\"../vendor/jquery.browser.js\"></script>\n    <script src=\"../dist/jquery-iframe-auto-height.js\"></script>\n  </head>\n  <body>\n    <div id=\"container\">\n      <h1>\n        jQuery » iFrame Auto Height Plugin\n      </h1>\n      <p>\n        This <a href=\"http://jquery.com/\">jQuery</a> plugin sets the height on iframes based on their content.\n        <a href=\"http://github.com/house9/jquery-iframe-auto-height\">http://github.com/house9/jquery-iframe-auto-height</a>\n      </p>\n\n      <p>\n        <a href=\"javascript:void(0);\" id=\"load-static-large-link\">Load large</a> |\n        <a href=\"javascript:void(0);\" id=\"load-dynamic-medium-link\">Dynamic medium</a> |\n        <a href=\"javascript:void(0);\" id=\"remove-dynamic-iframe-link\">Remove iframe</a>\n      </p>\n\n      <div id=\"iframe-container\" style=\"border:1px solid black; background-color:gray\">\n        <!-- load iframe here -->\n        Append Iframes here\n      </div>\n\n      <div class=\"clear\" style=\"height: 30px\">\n        &nbsp;\n      </div>\n\n      <div id=\"static-container\" style=\"border:1px solid black; background-color:gray\">\n        Iframe with changing src\n        <iframe style=\"height: 240px;\" id=\"iframe-loader\" src=\"./pic1.html\" class=\"photo\" scrolling=\"no\" frameborder=\"0\"></iframe>\n      </div>\n\n      <div class=\"clear\" style=\"height: 30px\">\n        &nbsp;\n      </div>\n\n      <div class=\"clear\">\n        &nbsp;\n      </div>\n      <p>\n        More: <a href=\"./\">Main</a> |\n        <a href=\"./index-with-pic.html\">Another Pic</a> |\n        <a href=\"./index-dynamic.html\">Dynamic</a> |\n        <a href=\"./index-min-height.html\">Min-Height</a> |\n        <a href=\"./index-callback.html\">Callback</a> |\n        <a href=\"./index-form.html\">Form</a>\n      </p>\n      <p>\n        Original code by Nathan Smith, see <a href=\"http://sonspring.com/journal/jquery-iframe-sizing\">original article</a>.\n      </p>\n      <div class=\"clear\">\n        &nbsp;\n      </div>\n    </div>\n\n    <script>\n      $(document).ready(function () {\n        var counter = 0;\n\n        // static iframe\n        $('#iframe-loader').iframeAutoHeight();\n        // click handling\n        $(\"#load-static-large-link\").click(function () {\n          $(\"#iframe-loader\").attr(\"src\", \"./large.html\");\n        });\n\n        // dynamic handling\n        $(\"#load-dynamic-medium-link\").click(function () {\n          var id = \"iframe-medium-\" + counter;\n          $(\"<iframe />\", {\n            src: \"./medium.html\",\n            id: id,\n            frameborder: 0,\n            \"class\": \"photo\"\n          }).appendTo(\"#iframe-container\");\n\n          $('#' + id).iframeAutoHeight({heightOffset: 40});\n          counter++;\n        });\n\n        $(\"#remove-dynamic-iframe-link\").click(function () {\n          $(\"#iframe-container iframe\").remove();\n        });\n      });\n    </script>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/index-form.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/application.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n\n    <script src=\"http://code.jquery.com/jquery-1.11.3.js\"></script>\n    <script src=\"../vendor/jquery.browser.js\"></script>\n    <script src=\"../dist/jquery-iframe-auto-height.js\"></script>\n    <script>\n      jQuery(function() {\n        $('iframe').iframeAutoHeight({\n          debug: true,\n          minHeight: 180,\n          diagnostics: true\n        });\n      });\n    </script>\n  </head>\n  <body>\n    <div id=\"container\">\n      <h1>\n        jQuery » iFrame Auto Height Plugin\n      </h1>\n      <p>\n        This <a href=\"http://jquery.com/\">jQuery</a> plugin sets the height on iframes based on their content.\n        <a href=\"http://github.com/house9/jquery-iframe-auto-height\">http://github.com/house9/jquery-iframe-auto-height</a>\n      </p>\n\n      <div style=\"clear:both\">\n        <div>\n          <div class=\"p\">\n            Form\n          </div>\n        </div>\n\n        <div>\n          <iframe src=\"./form_1.html\" class=\"column\" scrolling=\"no\" style=\"width: 666px; height: 1228px;\" frameborder=\"0\"></iframe>\n        </div>\n\n        <div style=\"clear:both; line-height: 0px; font-size: 0px\">\n          &nbsp;\n        </div>\n      </div>\n\n      <div class=\"clear\">\n        &nbsp;\n      </div>\n      <p>\n        More: <a href=\"./\">Main</a> |\n        <a href=\"./index-with-pic.html\">Another Pic</a> |\n        <a href=\"./index-dynamic.html\">Dynamic</a> |\n        <a href=\"./index-min-height.html\">Min-Height</a> |\n        <a href=\"./index-callback.html\">Callback</a> |\n        <a href=\"./index-form.html\">Form</a>\n      </p>\n      <p>\n        Original code by Nathan Smith, see <a href=\"http://sonspring.com/journal/jquery-iframe-sizing\">original article</a>.\n      </p>\n      <div class=\"clear\">\n        &nbsp;\n      </div>\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/index-min-height.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/application.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n\n    <script src=\"http://code.jquery.com/jquery-1.11.3.js\"></script>\n    <script src=\"../vendor/jquery.browser.js\"></script>\n    <script src=\"../dist/jquery-iframe-auto-height.js\"></script>\n    <script>\n      jQuery(function() {\n        $('iframe').iframeAutoHeight({\n          debug: true,\n          minHeight: 480,\n          animate: true\n        });\n      });\n    </script>\n  </head>\n  <body>\n    <div id=\"container\">\n      <h1>\n        jQuery » iFrame Auto Height Plugin\n      </h1>\n      <p>\n        This <a href=\"http://jquery.com/\">jQuery</a> plugin sets the height on iframes based on their content.\n        <a href=\"http://github.com/house9/jquery-iframe-auto-height\">http://github.com/house9/jquery-iframe-auto-height</a>\n      </p>\n\n      <div style=\"clear:both\">\n        <div style=\"float: left; width: 280px\">\n          <div class=\"p\">\n            This content is inside the container page. The iframe is to the right with a minHeight larger than the content.\n          </div>\n            <div class=\"p\">\n              The quick brown fox jumps over the lazy dog. The quick brown fox\n              jumps over the lazy dog. The quick brown fox jumps over the lazy dog.\n              The quick brown fox jumps over the lazy dog. The quick brown fox\n              jumps over the lazy dog. The quick brown fox jumps over the lazy dog.\n            </div>\n            <div class=\"p\">\n              The quick brown fox jumps over the lazy dog. The quick brown fox\n              jumps over the lazy dog. The quick brown fox jumps over the lazy dog.\n              The quick brown fox jumps over the lazy dog. The quick brown fox\n              jumps  over the lazy dog. The quick brown fox jumps over the lazy dog.\n            </div>\n            <div class=\"p\">\n              The quick brown fox jumps over the lazy dog. The quick brown fox\n              jumps over the lazy dog. The quick brown fox jumps over the lazy dog.\n              The quick brown fox jumps over the lazy dog. The quick brown fox\n              jumps over the lazy dog. The quick brown fox jumps over the lazy dog.\n            </div>\n        </div>\n        <div style=\"float: left\">\n          <iframe style=\"height: 480px;\" src=\"./xsmall.html\" class=\"column\" scrolling=\"no\" frameborder=\"0\"></iframe>\n        </div>\n        <div style=\"clear:both; line-height: 0px; font-size: 0px\">\n          &nbsp;\n        </div>\n      </div>\n\n      <div class=\"clear\">\n        &nbsp;\n      </div>\n      <p>\n        More: <a href=\"./\">Main</a> |\n        <a href=\"./index-with-pic.html\">Another Pic</a> |\n        <a href=\"./index-dynamic.html\">Dynamic</a> |\n        <a href=\"./index-min-height.html\">Min-Height</a> |\n        <a href=\"./index-callback.html\">Callback</a> |\n        <a href=\"./index-form.html\">Form</a>\n      </p>\n      <p>\n        Original code by Nathan Smith, see <a href=\"http://sonspring.com/journal/jquery-iframe-sizing\">original article</a>.\n      </p>\n      <div class=\"clear\">\n        &nbsp;\n      </div>\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/index-with-pic.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/application.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n\n    <script src=\"http://code.jquery.com/jquery-1.11.3.js\"></script>\n    <script src=\"../vendor/jquery.browser.js\"></script>\n    <script src=\"../dist/jquery-iframe-auto-height.js\"></script>\n    <script>\n      jQuery(function() {\n        $('iframe').iframeAutoHeight({\n          debug: true,\n          minHeight: 180,\n          diagnostics: true\n        });\n      });\n    </script>\n  </head>\n  <body>\n    <div id=\"container\">\n      <h1>\n        jQuery » iFrame Auto Height Plugin\n      </h1>\n      <p>\n        This <a href=\"http://jquery.com/\">jQuery</a> plugin sets the height on iframes based on their content.\n        <a href=\"http://github.com/house9/jquery-iframe-auto-height\">http://github.com/house9/jquery-iframe-auto-height</a>\n      </p>\n\n      <div style=\"clear:both\">\n        <div style=\"float: left; width: 280px\">\n          <div class=\"p\">\n            This content is inside the container page. The pic is in an iframe.\n          </div>\n          <div class=\"p\">\n            The quick brown fox jumps over the lazy dog. The quick brown fox\n            jumps over the lazy dog. The quick brown fox jumps over the lazy dog.\n            The quick brown fox jumps over the lazy dog. The quick brown fox\n            jumps over the lazy dog. The quick brown fox jumps over the lazy dog.\n          </div>\n          <div class=\"p\">\n            The quick brown fox jumps over the lazy dog. The quick brown fox\n            jumps over the lazy dog. The quick brown fox jumps over the lazy dog.\n            The quick brown fox jumps over the lazy dog. The quick brown fox\n            jumps over the lazy dog. The quick brown fox jumps over the lazy dog.\n          </div>\n          <div class=\"p\">\n            The quick brown fox jumps over the lazy dog. The quick brown fox\n            jumps over the lazy dog. The quick brown fox jumps over the lazy dog.\n            The quick brown fox jumps over the lazy dog. The quick brown fox\n            jumps over the lazy dog. The quick brown fox jumps over the lazy dog.\n          </div>\n        </div>\n        <div style=\"float: left\">\n          <iframe src=\"./castle.html\" style=\"width: 660px; height: 680px;\" scrolling=\"no\" frameborder=\"0\"></iframe>\n        </div>\n        <div style=\"clear:both; line-height: 0px; font-size: 0px\">\n          &nbsp;\n        </div>\n      </div>\n      <div class=\"clear\">\n        &nbsp;\n      </div>\n      <p>\n        More: <a href=\"./\">Main</a> |\n        <a href=\"./index-with-pic.html\">Another Pic</a> |\n        <a href=\"./index-dynamic.html\">Dynamic</a> |\n        <a href=\"./index-min-height.html\">Min-Height</a> |\n        <a href=\"./index-callback.html\">Callback</a> |\n        <a href=\"./index-form.html\">Form</a>\n      </p>\n      <p>\n        Original code by Nathan Smith, see <a href=\"http://sonspring.com/journal/jquery-iframe-sizing\">original article</a>.\n      </p>\n      <div class=\"clear\">\n        &nbsp;\n      </div>\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/index.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/application.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n\n    <script src=\"http://code.jquery.com/jquery-1.11.3.js\"></script>\n    <script src=\"../vendor/jquery.browser.js\"></script>\n    <script src=\"../dist/jquery-iframe-auto-height.js\"></script>\n    <script>\n      jQuery(function() {\n        $('iframe').iframeAutoHeight({\n          debug: true,\n          minHeight: 180,\n          diagnostics: true\n        });\n      });\n    </script>\n  </head>\n  <body>\n    <div id=\"container\">\n      <h1>\n        jQuery » iFrame Auto Height Plugin\n      </h1>\n      <p>\n        This <a href=\"http://jquery.com/\">jQuery</a> plugin sets the height on iframes based on their content.\n        <a href=\"http://github.com/house9/jquery-iframe-auto-height\">http://github.com/house9/jquery-iframe-auto-height</a>\n      </p>\n\n      <iframe style=\"height: 240px;\" src=\"./pic1.html\" class=\"photo\" scrolling=\"no\" frameborder=\"0\"></iframe>\n\n      <iframe style=\"height: 230px;\" src=\"./small.html\" class=\"column\" scrolling=\"no\" frameborder=\"0\"></iframe>\n      <iframe style=\"height: 230px;\" src=\"./small.html\" class=\"column\" scrolling=\"no\" frameborder=\"0\"></iframe>\n      <iframe style=\"height: 230px;\" src=\"./small.html\" class=\"column\" scrolling=\"no\" frameborder=\"0\"></iframe>\n      <iframe style=\"height: 230px;\" src=\"./small.html\" class=\"column\" scrolling=\"no\" frameborder=\"0\"></iframe>\n\n      <div class=\"clear\">&nbsp;</div>\n\n      <iframe style=\"height: 501px;\" src=\"./medium.html\" class=\"column\" scrolling=\"no\" frameborder=\"0\"></iframe>\n      <iframe style=\"height: 501px;\" src=\"./medium.html\" class=\"column\" scrolling=\"no\" frameborder=\"0\"></iframe>\n      <iframe style=\"height: 907px;\" src=\"./medium.html\" class=\"column\" scrolling=\"no\" frameborder=\"0\"></iframe>\n      <iframe style=\"height: 501px;\" src=\"./medium.html\" id=\"test-case\" class=\"column\" scrolling=\"no\" frameborder=\"0\"></iframe>\n\n      <div class=\"clear\">\n        &nbsp;\n      </div>\n      <p>\n        More: <a href=\"./\">Main</a> |\n        <a href=\"./index-with-pic.html\">Another Pic</a> |\n        <a href=\"./index-dynamic.html\">Dynamic</a> |\n        <a href=\"./index-min-height.html\">Min-Height</a> |\n        <a href=\"./index-callback.html\">Callback</a> |\n        <a href=\"./index-form.html\">Form</a>\n      </p>\n      <p>\n        Original code by Nathan Smith, see <a href=\"http://sonspring.com/journal/jquery-iframe-sizing\">original article</a>.\n      </p>\n      <div class=\"clear\">\n        &nbsp;\n      </div>\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/large.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/iframe_content.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n  </head>\n  <body>\n    <div id=\"container\">\n      <h2>large content</h2>\n<p>\n  Link:\n        <a href=\"./xsmall.html\">XS</a> |\n        <a href=\"./small.html\">S</a> |\n        <a href=\"./medium.html\">M</a> |\n        <a href=\"./large.html\">L</a> |\n        <a href=\"./xlarge.html\">XL</a> |\n        <a href=\"./xxlarge.html\">XXL</a>\n</p>\n\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/medium.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/iframe_content.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n  </head>\n  <body>\n    <div id=\"container\">\n      <h2>medium content</h2>\n      <p>\n        Link:\n        <a href=\"./xsmall.html\">XS</a> |\n        <a href=\"./small.html\">S</a> |\n        <a href=\"./medium.html\">M</a> |\n        <a href=\"./large.html\">L</a> |\n        <a href=\"./xlarge.html\">XL</a> |\n        <a href=\"./xxlarge.html\">XXL</a>\n      </p>\n\n        <p>\n      \tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n        <p>\n      \tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n        <p>\n      \tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/pic1.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/iframe_content.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n  </head>\n  <body>\n    <div id=\"container\">\n      <p>\n        <img alt=\"Arizona Horizon\" src=\"assets/panoramic.jpg\">\n      </p>\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/small.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/iframe_content.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n  </head>\n  <body>\n    <div id=\"container\">\n      <h2>small content</h2>\n      <p>\n        Link:\n        <a href=\"./xsmall.html\">XS</a> |\n        <a href=\"./small.html\">S</a> |\n        <a href=\"./medium.html\">M</a> |\n        <a href=\"./large.html\">L</a> |\n        <a href=\"./xlarge.html\">XL</a> |\n        <a href=\"./xxlarge.html\">XXL</a>\n      </p>\n\n      <p>\n      \tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\n      minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\n      ex ea commodo consequat.\n      </p>\n\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/xlarge.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/iframe_content.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n  </head>\n  <body>\n    <div id=\"container\">\n      <h2>x-large content</h2>\n<p>\n  Link:\n        <a href=\"./xsmall.html\">XS</a> |\n        <a href=\"./small.html\">S</a> |\n        <a href=\"./medium.html\">M</a> |\n        <a href=\"./large.html\">L</a> |\n        <a href=\"./xlarge.html\">XL</a> |\n        <a href=\"./xxlarge.html\">XXL</a>\n</p>\n\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/xsmall.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/iframe_content.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n  </head>\n  <body>\n    <div id=\"container\">\n      <h2>x-small content</h2>\n<p>\n  Link:\n        <a href=\"./xsmall.html\">XS</a> |\n        <a href=\"./small.html\">S</a> |\n        <a href=\"./medium.html\">M</a> |\n        <a href=\"./large.html\">L</a> |\n        <a href=\"./xlarge.html\">XL</a> |\n        <a href=\"./xxlarge.html\">XXL</a>\n</p>\n\nToo small.\n\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "demo/xxlarge.html",
    "content": "<!DOCTYPE html>\n<html>\n  <head>\n    <meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\">\n    <title>jQuery - iFrame Auto Height Plugin</title>\n    <link href=\"assets/iframe_content.css\" media=\"screen\" rel=\"stylesheet\" type=\"text/css\">\n  </head>\n  <body>\n    <div id=\"container\">\n      <h2>xx-large content</h2>\n<p>\n  Link:\n        <a href=\"./xsmall.html\">XS</a> |\n        <a href=\"./small.html\">S</a> |\n        <a href=\"./medium.html\">M</a> |\n        <a href=\"./large.html\">L</a> |\n        <a href=\"./xlarge.html\">XL</a> |\n        <a href=\"./xxlarge.html\">XXL</a>\n</p>\n\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n  <p>\n\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\neiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad\nminim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip\nex ea commodo consequat.\n</p>\n\n    </div>\n  </body>\n</html>\n"
  },
  {
    "path": "dist/jquery-iframe-auto-height.js",
    "content": "/*! jquery-iframe-auto-height - v2.0.0\n *  Release on: 2015-06-28\n *  Copyright (c) 2015 Jesse House\n *  Licensed The Unlicense */\n(function (root, factory) {\n  if (typeof define === 'function' && define.amd) {\n    // AMD. Register as an anonymous module unless amdModuleId is set\n    define([], function () {\n      return (factory());\n    });\n  } else if (typeof exports === 'object') {\n    // Node. Does not work with strict CommonJS, but\n    // only CommonJS-like environments that support module.exports,\n    // like Node.\n    module.exports = factory();\n  } else {\n    factory();\n  }\n}(this, function () {\n\n(function ($) {\n  $.fn.iframeAutoHeight = function (spec) {\n\n    var undef;\n    if ($.browser === undef) {\n      var message = [];\n      message.push(\"WARNING: you appear to be using a newer version of jquery which does not support the $.browser variable.\");\n      message.push(\"The jQuery iframe auto height plugin relies heavly on the $.browser features.\");\n      message.push(\"Install jquery-browser: https://raw.github.com/house9/jquery-iframe-auto-height/master/release/jquery.browser.js\");\n      alert(message.join(\"\\n\"));\n      return $;\n    }\n\n    // set default option values\n    var options = $.extend({\n        heightOffset: 0,\n        minHeight: 0,\n        maxHeight: 0,\n        callback: function () {},\n        animate: false,\n        debug: false,\n        diagnostics: false, // used for development only\n        resetToMinHeight: false,\n        triggerFunctions: [],\n        heightCalculationOverrides: []\n      }, spec);\n\n    // logging\n    function debug(message) {\n      if (options.debug && options.debug === true && window.console) {\n        console.log(message);\n      }\n    }\n\n    // not used by production code\n    function showDiagnostics(iframe, calledFrom) {\n      debug(\"Diagnostics from '\" + calledFrom + \"'\");\n      try {\n        debug(\"  \" + $(iframe, window.parent).contents().find('body')[0].scrollHeight + \" for ...find('body')[0].scrollHeight\");\n        debug(\"  \" + $(iframe.contentWindow.document).height() + \" for ...contentWindow.document).height()\");\n        debug(\"  \" + $(iframe.contentWindow.document.body).height() + \" for ...contentWindow.document.body).height()\");\n      } catch (ex) {\n        // ie fails when called during for each, ok later on\n        // probably not an issue if called in a document ready block\n        debug(\"  unable to check in this state\");\n      }\n      debug(\"End diagnostics -> results vary by browser and when diagnostics are requested\");\n    }\n\n    // show all option values\n    debug(options);\n\n    // ******************************************************\n    // iterate over the matched elements passed to the plugin ; return will make it chainable\n    return this.each(function () {\n\n      // ******************************************************\n      // http://api.jquery.com/jQuery.browser/\n      var strategyKeys = ['webkit', 'mozilla', 'msie', 'opera', 'chrome'];\n      var strategies = {};\n      strategies['default'] = function (iframe, $iframeBody, options) {\n        // NOTE: this is how the plugin determines the iframe height, override if you need custom\n        return $iframeBody[0].scrollHeight + options.heightOffset;\n      };\n\n      jQuery.each(strategyKeys, function (index, value) {\n        // use the default strategy for all browsers, can be overridden if desired\n        strategies[value] = strategies['default'];\n      });\n\n      // override strategies if registered in options\n      jQuery.each(options.heightCalculationOverrides, function (index, value) {\n        strategies[value.browser] = value.calculation;\n      });\n\n      function findStrategy(browser) {\n        var strategy = null;\n\n        jQuery.each(strategyKeys, function (index, value) {\n          if (browser[value]) {\n            strategy = strategies[value];\n            return false;\n          }\n        });\n\n        if (strategy === null) {\n          strategy = strategies['default'];\n        }\n\n        return strategy;\n      }\n      // ******************************************************\n\n      // for use by webkit only\n      var loadCounter = 0;\n\n      var iframeDoc = this.contentDocument || this.contentWindow.document;\n\n      // resizeHeight\n      function resizeHeight(iframe) {\n        if (options.diagnostics) {\n          showDiagnostics(iframe, \"resizeHeight\");\n        }\n\n        // set the iframe size to minHeight so it'll get smaller on resizes in FF and IE\n        if (options.resetToMinHeight && options.resetToMinHeight === true) {\n          iframe.style.height = options.minHeight + 'px';\n        }\n\n        // get the iframe body height and set inline style to that plus a little\n        var $body = $(iframe, window.parent).contents().find('body');\n        var strategy = findStrategy($.browser);\n        var newHeight = strategy(iframe, $body, options, $.browser);\n        debug(newHeight);\n\n        if (newHeight < options.minHeight) {\n          debug(\"new height is less than minHeight\");\n          newHeight = options.minHeight;\n        }\n\n        if (options.maxHeight > 0 && newHeight > options.maxHeight) {\n          debug(\"new height is greater than maxHeight\");\n          newHeight = options.maxHeight;\n        }\n\n        newHeight += options.heightOffset;\n\n        debug(\"New Height: \" + newHeight);\n        if (options.animate) {\n          $(iframe).animate({height: newHeight + 'px'}, {duration: 500});\n        } else {\n          iframe.style.height = newHeight + 'px';\n        }\n\n        options.callback.apply($(iframe), [{newFrameHeight: newHeight}]);\n      } // END resizeHeight\n\n      // debug me\n      debug(this);\n      if (options.diagnostics) {\n        showDiagnostics(this, \"each iframe\");\n      }\n\n      // if trigger functions are registered, invoke them\n      if (options.triggerFunctions.length > 0) {\n        debug(options.triggerFunctions.length + \" trigger Functions\");\n        for (var i = 0; i < options.triggerFunctions.length; i++) {\n          options.triggerFunctions[i](resizeHeight, this);\n        }\n      }\n\n      // Check if browser is Webkit (Safari/Chrome) or Opera\n      if ($.browser.webkit || $.browser.opera || $.browser.chrome) {\n        debug(\"browser is webkit (Safari/Chrome) or opera\");\n\n        // Start timer when loaded.\n        $(this).load(function () {\n          var delay = 0;\n          var iframe = this;\n\n          var delayedResize = function () {\n            resizeHeight(iframe);\n          };\n\n          if (loadCounter === 0) {\n            // delay the first one\n            delay = 500;\n          } else {\n            // Reset iframe height to 0 to force new frame size to fit window properly\n            // this is only an issue when going from large to small iframe, not executed on page load\n            iframe.style.height = options.minHeight + 'px';\n          }\n\n          debug(\"load delay: \" + delay);\n          setTimeout(delayedResize, delay);\n          loadCounter++;\n        });\n\n        // Safari and Opera need a kick-start.\n        var source = $(this).attr('src');\n        $(this).attr('src', '');\n        $(this).attr('src', source);\n      } else {\n        // For other browsers.\n        if(iframeDoc.readyState  === 'complete') {\n          resizeHeight(this);\n        } else {\n          $(this).load(function () {\n            resizeHeight(this);\n          });\n        }\n      } // if browser\n\n    }); // $(this).each(function () {\n  }; // $.fn.iframeAutoHeight = function (options) {\n}(jQuery)); // (function ($) {\n\n\n}));\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"jquery-iframe-auto-height\",\n  \"version\": \"2.0.0\",\n  \"description\": \"jQuery plugin to set the height of an iframe to its contents height\",\n  \"main\": \"dist/jquery-iframe-auto-height.js\",\n  \"readmeFilename\": \"README.md\",\n  \"author\": {\n    \"name\": \"Jesse House\",\n    \"email\": \"mail@jessehouse.com\"\n  },\n  \"repository\": {\n    \"url\": \"https://github.com/house9/jquery-iframe-auto-height\",\n    \"type\": \"git\"\n  },\n  \"license\": \"The Unlicense\",\n  \"engines\": {\n    \"node\": \">= 0.10.0\"\n  },\n  \"devDependencies\": {\n    \"grunt\": \"^0.4.5\",\n    \"grunt-contrib-concat\": \"^0.4.0\",\n    \"grunt-contrib-jshint\": \"^0.10.0\",\n    \"grunt-contrib-uglify\": \"^0.5.0\",\n    \"grunt-contrib-watch\": \"^0.6.1\",\n    \"grunt-contrib-clean\": \"^0.5.0\",\n    \"grunt-jscs\": \"^1.1.0\",\n    \"grunt-lintspaces\": \"^0.5.1\",\n    \"jit-grunt\": \"^0.7.0\",\n    \"jshint-stylish\": \"^0.2.0\",\n    \"load-grunt-config\": \"^0.10.0\",\n    \"grunt-umd\": \"^2.3.0\",\n    \"time-grunt\": \"^0.3.2\",\n    \"grunt-conventional-changelog\": \"^1.1.0\",\n    \"grunt-groc\": \"^0.4.5\"\n  }\n}\n"
  },
  {
    "path": "release/2.0.0+.js",
    "content": "alert('Find 2.0.0 + in the dist directory');\n"
  },
  {
    "path": "release/README",
    "content": "## NOTE\n\n* use files from the dist directory for 2.0.0 and above\n* this directory exists for legacy reaons only\n"
  },
  {
    "path": "release/jquery.browser.js",
    "content": "(function( jQuery ) {\n\tvar matched,\n\t\tuserAgent = navigator.userAgent || \"\";\n\n\t// Use of jQuery.browser is frowned upon.\n\t// More details: http://api.jquery.com/jQuery.browser\n\t// jQuery.uaMatch maintained for back-compat\n\tjQuery.uaMatch = function( ua ) {\n\t\tua = ua.toLowerCase();\n\n\t\tvar match = /(chrome)[ \\/]([\\w.]+)/.exec( ua ) ||\n\t\t\t/(webkit)[ \\/]([\\w.]+)/.exec( ua ) ||\n\t\t\t/(opera)(?:.*version)?[ \\/]([\\w.]+)/.exec( ua ) ||\n\t\t\t/(msie) ([\\w.]+)/.exec( ua ) ||\n\t\t\tua.indexOf(\"compatible\") < 0 && /(mozilla)(?:.*? rv:([\\w.]+))?/.exec( ua ) ||\n\t\t\t[];\n\n\t\treturn {\n\t\t\tbrowser: match[ 1 ] || \"\",\n\t\t\tversion: match[ 2 ] || \"0\"\n\t\t};\n\t};\n\n\tmatched = jQuery.uaMatch( userAgent );\n\n\tjQuery.browser = {};\n\n\tif ( matched.browser ) {\n\t\tjQuery.browser[ matched.browser ] = true;\n\t\tjQuery.browser.version = matched.version;\n\t}\n\n\t// Deprecated, use jQuery.browser.webkit instead\n\t// Maintained for back-compat only\n\tif ( jQuery.browser.webkit ) {\n\t\tjQuery.browser.safari = true;\n\t}\n\n}( jQuery ));"
  },
  {
    "path": "release/jquery.iframe-auto-height.js",
    "content": "/*jslint white: true, indent: 2, onevar: false, browser: true, undef: true, nomen: false, eqeqeq: true, plusplus: false, bitwise: true, regexp: true, strict: false, newcap: true, immed: true */\n/*global window, console, jQuery, setTimeout */\n\n/*\n  Plugin: iframe autoheight jQuery Plugin\n  Version: 1.9.5\n  Author and Contributors\n  ========================================\n  NATHAN SMITH (http://sonspring.com/)\n  Jesse House (https://github.com/house9)\n  aaron manela (https://github.com/aaronmanela)\n  Hideki Abe (https://github.com/hideki-a)\n  Patrick Clark (https://github.com/hellopat)\n  ChristineP2 (https://github.com/ChristineP2)\n  Mmjavellana (https://github.com/Mmjavellana)\n  yiqing-95 (https://github.com/yiqing-95)\n  jcaspian (https://github.com/jcaspian)\n  adamjgray (https://github.com/adamjgray)\n  Jens Bissinger (https://github.com/dpree)\n  jbreton (https://github.com/jbreton)\n  mindmelting (https://github.com/mindmelting)\n\n  File: jquery.iframe-auto-height.plugin.js\n  Remarks: original code from http://sonspring.com/journal/jquery-iframe-sizing\n  Description: when the page loads set the height of an iframe based on the height of its contents\n  see README: http://github.com/house9/jquery-iframe-auto-height\n\n*/\n(function ($) {\n  $.fn.iframeAutoHeight = function (spec) {\n\n    var undef;\n    if ($.browser === undef) {\n      var message = [];\n      message.push(\"WARNING: you appear to be using a newer version of jquery which does not support the $.browser variable.\");\n      message.push(\"The jQuery iframe auto height plugin relies heavly on the $.browser features.\");\n      message.push(\"Install jquery-browser: https://raw.github.com/house9/jquery-iframe-auto-height/master/release/jquery.browser.js\");\n      alert(message.join(\"\\n\"));\n      return $;\n    }\n\n    // set default option values\n    var options = $.extend({\n        heightOffset: 0,\n        minHeight: 0,\n        maxHeight: 0,\n        callback: function (newHeight) {},\n        animate: false,\n        debug: false,\n        diagnostics: false, // used for development only\n        resetToMinHeight: false,\n        triggerFunctions: [],\n        heightCalculationOverrides: []\n      }, spec);\n\n    // logging\n    function debug(message) {\n      if (options.debug && options.debug === true && window.console) {\n        console.log(message);\n      }\n    }\n\n    // not used by production code\n    function showDiagnostics(iframe, calledFrom) {\n      debug(\"Diagnostics from '\" + calledFrom + \"'\");\n      try {\n        debug(\"  \" + $(iframe, window.top.document).contents().find('body')[0].scrollHeight + \" for ...find('body')[0].scrollHeight\");\n        debug(\"  \" + $(iframe.contentWindow.document).height() + \" for ...contentWindow.document).height()\");\n        debug(\"  \" + $(iframe.contentWindow.document.body).height() + \" for ...contentWindow.document.body).height()\");\n      } catch (ex) {\n        // ie fails when called during for each, ok later on\n        // probably not an issue if called in a document ready block\n        debug(\"  unable to check in this state\");\n      }\n      debug(\"End diagnostics -> results vary by browser and when diagnostics are requested\");\n    }\n\n    // show all option values\n    debug(options);\n\n    // ******************************************************\n    // iterate over the matched elements passed to the plugin ; return will make it chainable\n    return this.each(function () {\n\n      // ******************************************************\n      // http://api.jquery.com/jQuery.browser/\n      var strategyKeys = ['webkit', 'mozilla', 'msie', 'opera'];\n      var strategies = {};\n      strategies['default'] = function (iframe, $iframeBody, options, browser) {\n        // NOTE: this is how the plugin determines the iframe height, override if you need custom\n        return $iframeBody[0].scrollHeight + options.heightOffset;\n      };\n\n      jQuery.each(strategyKeys, function (index, value) {\n        // use the default strategy for all browsers, can be overridden if desired\n        strategies[value] = strategies['default'];\n      });\n\n      // override strategies if registered in options\n      jQuery.each(options.heightCalculationOverrides, function (index, value) {\n        strategies[value.browser] = value.calculation;\n      });\n\n      function findStrategy(browser) {\n        var strategy = null;\n\n        jQuery.each(strategyKeys, function (index, value) {\n          if (browser[value]) {\n            strategy = strategies[value];\n            return false;\n          }\n        });\n\n        if (strategy === null) {\n          strategy = strategies['default'];\n        }\n\n        return strategy;\n      }\n      // ******************************************************\n\n      // for use by webkit only\n      var loadCounter = 0;\n\n      var iframeDoc = this.contentDocument || this.contentWindow.document;\n\n      // resizeHeight\n      function resizeHeight(iframe) {\n        if (options.diagnostics) {\n          showDiagnostics(iframe, \"resizeHeight\");\n        }\n\n        // set the iframe size to minHeight so it'll get smaller on resizes in FF and IE\n        if (options.resetToMinHeight && options.resetToMinHeight === true) {\n          iframe.style.height = options.minHeight + 'px';\n        }\n\n        // get the iframe body height and set inline style to that plus a little\n        var $body = $(iframe, window.top.document).contents().find('body');\n        var strategy = findStrategy($.browser);\n        var newHeight = strategy(iframe, $body, options, $.browser);\n        debug(newHeight);\n\n        if (newHeight < options.minHeight) {\n          debug(\"new height is less than minHeight\");\n          newHeight = options.minHeight;\n        }\n\n        if (options.maxHeight > 0 && newHeight > options.maxHeight) {\n          debug(\"new height is greater than maxHeight\");\n          newHeight = options.maxHeight;\n        }\n\n        newHeight += options.heightOffset;\n\n        debug(\"New Height: \" + newHeight);\n        if (options.animate) {\n          $(iframe).animate({height: newHeight + 'px'}, {duration: 500});\n        } else {\n          iframe.style.height = newHeight + 'px';\n        }\n\n        options.callback.apply($(iframe), [{newFrameHeight: newHeight}]);\n      } // END resizeHeight\n\n      // debug me\n      debug(this);\n      if (options.diagnostics) {\n        showDiagnostics(this, \"each iframe\");\n      }\n\n      // if trigger functions are registered, invoke them\n      if (options.triggerFunctions.length > 0) {\n        debug(options.triggerFunctions.length + \" trigger Functions\");\n        for (var i = 0; i < options.triggerFunctions.length; i++) {\n          options.triggerFunctions[i](resizeHeight, this);\n        }\n      }\n\n      // Check if browser is Webkit (Safari/Chrome) or Opera\n      if ($.browser.webkit || $.browser.opera || $.browser.chrome) {\n        debug(\"browser is webkit or opera\");\n\n        // Start timer when loaded.\n        $(this).load(function () {\n          var delay = 0;\n          var iframe = this;\n\n          var delayedResize = function () {\n            resizeHeight(iframe);\n          };\n\n          if (loadCounter === 0) {\n            // delay the first one\n            delay = 500;\n          } else {\n            // Reset iframe height to 0 to force new frame size to fit window properly\n            // this is only an issue when going from large to small iframe, not executed on page load\n            iframe.style.height = options.minHeight + 'px';\n          }\n\n          debug(\"load delay: \" + delay);\n          setTimeout(delayedResize, delay);\n          loadCounter++;\n        });\n\n        // Safari and Opera need a kick-start.\n        var source = $(this).attr('src');\n        $(this).attr('src', '');\n        $(this).attr('src', source);\n      } else {\n        // For other browsers.\n        if(iframeDoc.readyState  === 'complete') {\n          resizeHeight(this);\n        } else {\n          $(this).load(function () {\n            resizeHeight(this);\n          });\n        }\n      } // if browser\n\n    }); // $(this).each(function () {\n  }; // $.fn.iframeAutoHeight = function (options) {\n}(jQuery)); // (function ($) {\n"
  },
  {
    "path": "release/jquery.iframe-auto-height.plugin.1.5.0.js",
    "content": "/*jslint white: true, indent: 2, onevar: false, browser: true, undef: true, nomen: false, eqeqeq: true, plusplus: false, bitwise: true, regexp: true, strict: false, newcap: true, immed: true */\n/*global window, console, jQuery, setTimeout */\n\n/*\n  Plugin: iframe autoheight jQuery Plugin\n  Version: 1.5.0  \n  Author and Contributors\n  ========================================\n  NATHAN SMITH (http://sonspring.com/)\n  Jesse House (https://github.com/house9)\n  aaron manela (https://github.com/aaronmanela)\n  Hideki Abe (https://github.com/hideki-a)\n  Patrick Clark (https://github.com/hellopat)\n  ChristineP2 (https://github.com/ChristineP2)\n  Mmjavellana (https://github.com/Mmjavellana)\n  \n  File: jquery.iframe-auto-height.plugin.js  \n  Remarks: original code from http://sonspring.com/journal/jquery-iframe-sizing      \n  Description: when the page loads set the height of an iframe based on the height of its contents\n  see README: http://github.com/house9/jquery-iframe-auto-height\n\n*/\n(function ($) {\n  $.fn.iframeAutoHeight = function (spec) {\n    \n    // set default option values\n    var options = $.extend({\n        heightOffset: 0, \n        minHeight: 0, \n        callback: function (newHeight) {},\n        debug: false,\n        diagnostics: false // used for development only\n      }, spec);\n    \n    // logging\n    function debug(message) {\n      if (options.debug && options.debug === true && window.console) {\n        console.log(message);\n      }\n    }    \n\n    // not used by production code\n    function showDiagnostics(iframe, calledFrom) {\n      debug(\"Diagnostics from '\" + calledFrom + \"'\");      \n      try {\n        debug(\"  \" + $(iframe, window.top.document).contents().find('body')[0].scrollHeight + \" for ...find('body')[0].scrollHeight\");                  \n        debug(\"  \" + $(iframe.contentWindow.document).height() + \" for ...contentWindow.document).height()\");\n        debug(\"  \" + $(iframe.contentWindow.document.body).height() + \" for ...contentWindow.document.body).height()\");        \n      } catch (ex) {\n        // ie fails when called during for each, ok later on\n        // probably not an issue if called in a document ready block         \n        debug(\"  unable to check in this state\");\n      }\n      debug(\"End diagnostics -> results vary by browser and when diagnostics are requested\");\n    }\n    \n    // show all option values\n    debug(options);    \n\n    // ******************************************************\n    // iterate over the matched elements passed to the plugin\n    $(this).each(function () {\n      // for use by webkit only\n      var loadCounter = 0;\n            \n      // resizeHeight\n      function resizeHeight(iframe) {\n        if (options.diagnostics) {\n          showDiagnostics(iframe, \"resizeHeight\");\n        }     \n     \n        // get the iframe body height and set inline style to that plus a little\n        var $body = $(iframe, window.top.document).contents().find('body');\n        var newHeight = $body[0].scrollHeight + options.heightOffset;\n        \n        if (newHeight < options.minHeight) {          \n          debug(\"new height is less than minHeight\");\n          newHeight = options.minHeight + options.heightOffset;\n        }\n\n        debug(\"New Height: \" + newHeight);\n        iframe.style.height = newHeight + 'px';\n        options.callback({newFrameHeight: newHeight});\n      }\n      \n      // debug me\n      debug(this);    \n      if (options.diagnostics) {\n        showDiagnostics(this, \"each iframe\");\n      }      \n      \n      // Check if browser is Opera or Safari (Webkit really, so includes Chrome)\n      if ($.browser.safari || $.browser.opera) {\n        debug(\"browser is webkit or opera\");\n        \n        // Start timer when loaded.\n        $(this).load(function () {\n          var delay = 0;\n          var iframe = this;  \n          // Reset iframe height to 0 to force new frame size to fit window properly          \n          iframe.style.height = '0px';                     \n          var delayedResize = function () {\n            resizeHeight(iframe);\n          };\n          \n          if (loadCounter === 0) {\n            delay = 500; // delay the first one\n          }\n          \n          debug(\"load delay: \" + delay);\n          setTimeout(delayedResize, delay);\n          loadCounter++;          \n        });\n\n        // Safari and Opera need a kick-start.\n        var source = $(this).attr('src');\n        $(this).attr('src', '');\n        $(this).attr('src', source);\n      } else {\n        // For other browsers.\n        $(this).load(function () {\n          resizeHeight(this);\n        });\n      } // if browser\n             \n    }); // $(this).each(function () {    \n  }; // $.fn.iframeAutoHeight = function (options) {\n}(jQuery)); // (function ($) {\n"
  },
  {
    "path": "release/jquery.iframe-auto-height.plugin.1.6.0.js",
    "content": "/*jslint white: true, indent: 2, onevar: false, browser: true, undef: true, nomen: false, eqeqeq: true, plusplus: false, bitwise: true, regexp: true, strict: false, newcap: true, immed: true */\n/*global window, console, jQuery, setTimeout */\n\n/*\n  Plugin: iframe autoheight jQuery Plugin\n  Version: 1.6.0  \n  Author and Contributors\n  ========================================\n  NATHAN SMITH (http://sonspring.com/)\n  Jesse House (https://github.com/house9)\n  aaron manela (https://github.com/aaronmanela)\n  Hideki Abe (https://github.com/hideki-a)\n  Patrick Clark (https://github.com/hellopat)\n  ChristineP2 (https://github.com/ChristineP2)\n  Mmjavellana (https://github.com/Mmjavellana)\n  yiqing-95 (https://github.com/yiqing-95)\n  \n  File: jquery.iframe-auto-height.plugin.js  \n  Remarks: original code from http://sonspring.com/journal/jquery-iframe-sizing      \n  Description: when the page loads set the height of an iframe based on the height of its contents\n  see README: http://github.com/house9/jquery-iframe-auto-height\n\n*/\n(function ($) {\n  $.fn.iframeAutoHeight = function (spec) {\n    \n    // set default option values\n    var options = $.extend({\n        heightOffset: 0, \n        minHeight: 0, \n        callback: function (newHeight) {},\n        debug: false,\n        diagnostics: false // used for development only\n      }, spec);\n    \n    // logging\n    function debug(message) {\n      if (options.debug && options.debug === true && window.console) {\n        console.log(message);\n      }\n    }    \n\n    // not used by production code\n    function showDiagnostics(iframe, calledFrom) {\n      debug(\"Diagnostics from '\" + calledFrom + \"'\");      \n      try {\n        debug(\"  \" + $(iframe, window.top.document).contents().find('body')[0].scrollHeight + \" for ...find('body')[0].scrollHeight\");                  \n        debug(\"  \" + $(iframe.contentWindow.document).height() + \" for ...contentWindow.document).height()\");\n        debug(\"  \" + $(iframe.contentWindow.document.body).height() + \" for ...contentWindow.document.body).height()\");        \n      } catch (ex) {\n        // ie fails when called during for each, ok later on\n        // probably not an issue if called in a document ready block         \n        debug(\"  unable to check in this state\");\n      }\n      debug(\"End diagnostics -> results vary by browser and when diagnostics are requested\");\n    }\n    \n    // show all option values\n    debug(options);    \n\n    // ******************************************************\n    // iterate over the matched elements passed to the plugin ; return will make it chainable\n    return this.each(function () {\n     \n      // for use by webkit only\n      var loadCounter = 0;\n            \n      // resizeHeight\n      function resizeHeight(iframe) {\n        if (options.diagnostics) {\n          showDiagnostics(iframe, \"resizeHeight\");\n        }     \n     \n        // get the iframe body height and set inline style to that plus a little\n        var $body = $(iframe, window.top.document).contents().find('body');\n        var newHeight = $body[0].scrollHeight + options.heightOffset;\n        \n        if (newHeight < options.minHeight) {          \n          debug(\"new height is less than minHeight\");\n          newHeight = options.minHeight + options.heightOffset;\n        }\n\n        debug(\"New Height: \" + newHeight);\n        iframe.style.height = newHeight + 'px';\n        \n        options.callback.apply($(iframe), [{newFrameHeight: newHeight}]);\n      }\n      \n      // debug me\n      debug(this);    \n      if (options.diagnostics) {\n        showDiagnostics(this, \"each iframe\");\n      }      \n      \n      // Check if browser is Opera or Safari (Webkit really, so includes Chrome)\n      if ($.browser.safari || $.browser.opera) {\n        debug(\"browser is webkit or opera\");\n        \n        // Start timer when loaded.\n        $(this).load(function () {\n          var delay = 0;\n          var iframe = this;  \n          // Reset iframe height to 0 to force new frame size to fit window properly          \n          iframe.style.height = '0px';                     \n          var delayedResize = function () {\n            resizeHeight(iframe);\n          };\n          \n          if (loadCounter === 0) {\n            delay = 500; // delay the first one\n          }\n          \n          debug(\"load delay: \" + delay);\n          setTimeout(delayedResize, delay);\n          loadCounter++;          \n        });\n\n        // Safari and Opera need a kick-start.\n        var source = $(this).attr('src');\n        $(this).attr('src', '');\n        $(this).attr('src', source);\n      } else {\n        // For other browsers.\n        $(this).load(function () {\n          resizeHeight(this);\n        });\n      } // if browser\n             \n    }); // $(this).each(function () {    \n  }; // $.fn.iframeAutoHeight = function (options) {\n}(jQuery)); // (function ($) {\n"
  },
  {
    "path": "release/jquery.iframe-auto-height.plugin.1.7.0.js",
    "content": "/*jslint white: true, indent: 2, onevar: false, browser: true, undef: true, nomen: false, eqeqeq: true, plusplus: false, bitwise: true, regexp: true, strict: false, newcap: true, immed: true */\n/*global window, console, jQuery, setTimeout */\n\n/*\n  Plugin: iframe autoheight jQuery Plugin\n  Version: 1.7.0\n  Author and Contributors\n  ========================================\n  NATHAN SMITH (http://sonspring.com/)\n  Jesse House (https://github.com/house9)\n  aaron manela (https://github.com/aaronmanela)\n  Hideki Abe (https://github.com/hideki-a)\n  Patrick Clark (https://github.com/hellopat)\n  ChristineP2 (https://github.com/ChristineP2)\n  Mmjavellana (https://github.com/Mmjavellana)\n  yiqing-95 (https://github.com/yiqing-95)\n  jcaspian (https://github.com/jcaspian)\n\n  File: jquery.iframe-auto-height.plugin.js\n  Remarks: original code from http://sonspring.com/journal/jquery-iframe-sizing\n  Description: when the page loads set the height of an iframe based on the height of its contents\n  see README: http://github.com/house9/jquery-iframe-auto-height\n\n*/\n(function ($) {\n  $.fn.iframeAutoHeight = function (spec) {\n\n    // set default option values\n    var options = $.extend({\n        heightOffset: 0,\n        minHeight: 0,\n        callback: function (newHeight) {},\n        animate: false,\n        debug: false,\n        diagnostics: false // used for development only\n      }, spec);\n\n    // logging\n    function debug(message) {\n      if (options.debug && options.debug === true && window.console) {\n        console.log(message);\n      }\n    }\n\n    // not used by production code\n    function showDiagnostics(iframe, calledFrom) {\n      debug(\"Diagnostics from '\" + calledFrom + \"'\");\n      try {\n        debug(\"  \" + $(iframe, window.top.document).contents().find('body')[0].scrollHeight + \" for ...find('body')[0].scrollHeight\");\n        debug(\"  \" + $(iframe.contentWindow.document).height() + \" for ...contentWindow.document).height()\");\n        debug(\"  \" + $(iframe.contentWindow.document.body).height() + \" for ...contentWindow.document.body).height()\");\n      } catch (ex) {\n        // ie fails when called during for each, ok later on\n        // probably not an issue if called in a document ready block\n        debug(\"  unable to check in this state\");\n      }\n      debug(\"End diagnostics -> results vary by browser and when diagnostics are requested\");\n    }\n\n    // show all option values\n    debug(options);\n\n    // ******************************************************\n    // iterate over the matched elements passed to the plugin ; return will make it chainable\n    return this.each(function () {\n\n      // for use by webkit only\n      var loadCounter = 0;\n\n      // resizeHeight\n      function resizeHeight(iframe) {\n        if (options.diagnostics) {\n          showDiagnostics(iframe, \"resizeHeight\");\n        }\n\n        // get the iframe body height and set inline style to that plus a little\n        var $body = $(iframe, window.top.document).contents().find('body');\n        var newHeight = $body[0].scrollHeight + options.heightOffset;\n\n        if (newHeight < options.minHeight) {\n          debug(\"new height is less than minHeight\");\n          newHeight = options.minHeight + options.heightOffset;\n        }\n\n        debug(\"New Height: \" + newHeight);\n        if (options.animate) {\n          $(iframe).animate({height: newHeight + 'px'}, {duration: 500});\n        } else {\n          iframe.style.height = newHeight + 'px';\n        }\n\n        options.callback.apply($(iframe), [{newFrameHeight: newHeight}]);\n      }\n\n      // debug me\n      debug(this);\n      if (options.diagnostics) {\n        showDiagnostics(this, \"each iframe\");\n      }\n\n      // Check if browser is Opera or Safari (Webkit really, so includes Chrome)\n      if ($.browser.safari || $.browser.opera) {\n        debug(\"browser is webkit or opera\");\n\n        // Start timer when loaded.\n        $(this).load(function () {\n          var delay = 0;\n          var iframe = this;\n          // Reset iframe height to 0 to force new frame size to fit window properly\n          iframe.style.height = '0px';\n          var delayedResize = function () {\n            resizeHeight(iframe);\n          };\n\n          if (loadCounter === 0) {\n            delay = 500; // delay the first one\n          }\n\n          debug(\"load delay: \" + delay);\n          setTimeout(delayedResize, delay);\n          loadCounter++;\n        });\n\n        // Safari and Opera need a kick-start.\n        var source = $(this).attr('src');\n        $(this).attr('src', '');\n        $(this).attr('src', source);\n      } else {\n        // For other browsers.\n        $(this).load(function () {\n          resizeHeight(this);\n        });\n      } // if browser\n\n    }); // $(this).each(function () {\n  }; // $.fn.iframeAutoHeight = function (options) {\n}(jQuery)); // (function ($) {\n"
  },
  {
    "path": "release/jquery.iframe-auto-height.plugin.1.7.1.js",
    "content": "/*jslint white: true, indent: 2, onevar: false, browser: true, undef: true, nomen: false, eqeqeq: true, plusplus: false, bitwise: true, regexp: true, strict: false, newcap: true, immed: true */\n/*global window, console, jQuery, setTimeout */\n\n/*\n  Plugin: iframe autoheight jQuery Plugin\n  Version: 1.7.1\n  Author and Contributors\n  ========================================\n  NATHAN SMITH (http://sonspring.com/)\n  Jesse House (https://github.com/house9)\n  aaron manela (https://github.com/aaronmanela)\n  Hideki Abe (https://github.com/hideki-a)\n  Patrick Clark (https://github.com/hellopat)\n  ChristineP2 (https://github.com/ChristineP2)\n  Mmjavellana (https://github.com/Mmjavellana)\n  yiqing-95 (https://github.com/yiqing-95)\n  jcaspian (https://github.com/jcaspian)\n\n  File: jquery.iframe-auto-height.plugin.js\n  Remarks: original code from http://sonspring.com/journal/jquery-iframe-sizing\n  Description: when the page loads set the height of an iframe based on the height of its contents\n  see README: http://github.com/house9/jquery-iframe-auto-height\n\n*/\n(function ($) {\n  $.fn.iframeAutoHeight = function (spec) {\n\n    // set default option values\n    var options = $.extend({\n        heightOffset: 0,\n        minHeight: 0,\n        callback: function (newHeight) {},\n        animate: false,\n        debug: false,\n        diagnostics: false // used for development only\n      }, spec);\n\n    // logging\n    function debug(message) {\n      if (options.debug && options.debug === true && window.console) {\n        console.log(message);\n      }\n    }\n\n    // not used by production code\n    function showDiagnostics(iframe, calledFrom) {\n      debug(\"Diagnostics from '\" + calledFrom + \"'\");\n      try {\n        debug(\"  \" + $(iframe, window.top.document).contents().find('body')[0].scrollHeight + \" for ...find('body')[0].scrollHeight\");\n        debug(\"  \" + $(iframe.contentWindow.document).height() + \" for ...contentWindow.document).height()\");\n        debug(\"  \" + $(iframe.contentWindow.document.body).height() + \" for ...contentWindow.document.body).height()\");\n      } catch (ex) {\n        // ie fails when called during for each, ok later on\n        // probably not an issue if called in a document ready block\n        debug(\"  unable to check in this state\");\n      }\n      debug(\"End diagnostics -> results vary by browser and when diagnostics are requested\");\n    }\n\n    // show all option values\n    debug(options);\n\n    // ******************************************************\n    // iterate over the matched elements passed to the plugin ; return will make it chainable\n    return this.each(function () {\n\n      // for use by webkit only\n      var loadCounter = 0;\n\n      // resizeHeight\n      function resizeHeight(iframe) {\n        if (options.diagnostics) {\n          showDiagnostics(iframe, \"resizeHeight\");\n        }\n\n        // get the iframe body height and set inline style to that plus a little\n        var $body = $(iframe, window.top.document).contents().find('body');\n        var newHeight = $body[0].scrollHeight + options.heightOffset;\n        debug(newHeight);\n\n        if (newHeight < options.minHeight) {\n          debug(\"new height is less than minHeight\");\n          newHeight = options.minHeight + options.heightOffset;\n        }\n\n        debug(\"New Height: \" + newHeight);\n        if (options.animate) {\n          $(iframe).animate({height: newHeight + 'px'}, {duration: 500});\n        } else {\n          iframe.style.height = newHeight + 'px';\n        }\n\n        options.callback.apply($(iframe), [{newFrameHeight: newHeight}]);\n      }\n\n      // debug me\n      debug(this);\n      if (options.diagnostics) {\n        showDiagnostics(this, \"each iframe\");\n      }\n\n      // Check if browser is Opera or Safari (Webkit really, so includes Chrome)\n      if ($.browser.safari || $.browser.opera) {\n        debug(\"browser is webkit or opera\");\n\n        // Start timer when loaded.\n        $(this).load(function () {\n          var delay = 0;\n          var iframe = this;\n\n          var delayedResize = function () {\n            resizeHeight(iframe);\n          };\n\n          if (loadCounter === 0) {\n            // delay the first one\n            delay = 500;\n          } else {\n            // Reset iframe height to 0 to force new frame size to fit window properly\n            // this is only an issue when going from large to small iframe, not executed on page load\n            iframe.style.height = options.minHeight + 'px';\n          }\n\n          debug(\"load delay: \" + delay);\n          setTimeout(delayedResize, delay);\n          loadCounter++;\n        });\n\n        // Safari and Opera need a kick-start.\n        var source = $(this).attr('src');\n        $(this).attr('src', '');\n        $(this).attr('src', source);\n      } else {\n        // For other browsers.\n        $(this).load(function () {\n          resizeHeight(this);\n        });\n      } // if browser\n\n    }); // $(this).each(function () {\n  }; // $.fn.iframeAutoHeight = function (options) {\n}(jQuery)); // (function ($) {\n"
  },
  {
    "path": "release/jquery.iframe-auto-height.plugin.1.8.0.js",
    "content": "/*jslint white: true, indent: 2, onevar: false, browser: true, undef: true, nomen: false, eqeqeq: true, plusplus: false, bitwise: true, regexp: true, strict: false, newcap: true, immed: true */\n/*global window, console, jQuery, setTimeout */\n\n/*\n  Plugin: iframe autoheight jQuery Plugin\n  Version: 1.8.0\n  Author and Contributors\n  ========================================\n  NATHAN SMITH (http://sonspring.com/)\n  Jesse House (https://github.com/house9)\n  aaron manela (https://github.com/aaronmanela)\n  Hideki Abe (https://github.com/hideki-a)\n  Patrick Clark (https://github.com/hellopat)\n  ChristineP2 (https://github.com/ChristineP2)\n  Mmjavellana (https://github.com/Mmjavellana)\n  yiqing-95 (https://github.com/yiqing-95)\n  jcaspian (https://github.com/jcaspian)\n  adamjgray (https://github.com/adamjgray)\n\n  File: jquery.iframe-auto-height.plugin.js\n  Remarks: original code from http://sonspring.com/journal/jquery-iframe-sizing\n  Description: when the page loads set the height of an iframe based on the height of its contents\n  see README: http://github.com/house9/jquery-iframe-auto-height\n\n*/\n(function ($) {\n  $.fn.iframeAutoHeight = function (spec) {\n\n    // set default option values\n    var options = $.extend({\n        heightOffset: 0,\n        minHeight: 0,\n        callback: function (newHeight) {},\n        animate: false,\n        debug: false,\n        diagnostics: false, // used for development only\n        resetToMinHeight: false,\n        triggerFunctions: [],\n        heightCalculationOverrides: []\n      }, spec);\n\n    // logging\n    function debug(message) {\n      if (options.debug && options.debug === true && window.console) {\n        console.log(message);\n      }\n    }\n\n    // not used by production code\n    function showDiagnostics(iframe, calledFrom) {\n      debug(\"Diagnostics from '\" + calledFrom + \"'\");\n      try {\n        debug(\"  \" + $(iframe, window.top.document).contents().find('body')[0].scrollHeight + \" for ...find('body')[0].scrollHeight\");\n        debug(\"  \" + $(iframe.contentWindow.document).height() + \" for ...contentWindow.document).height()\");\n        debug(\"  \" + $(iframe.contentWindow.document.body).height() + \" for ...contentWindow.document.body).height()\");\n      } catch (ex) {\n        // ie fails when called during for each, ok later on\n        // probably not an issue if called in a document ready block\n        debug(\"  unable to check in this state\");\n      }\n      debug(\"End diagnostics -> results vary by browser and when diagnostics are requested\");\n    }\n\n    // show all option values\n    debug(options);\n\n    // ******************************************************\n    // iterate over the matched elements passed to the plugin ; return will make it chainable\n    return this.each(function () {\n\n      // ******************************************************\n      // http://api.jquery.com/jQuery.browser/\n      var strategyKeys = ['webkit', 'mozilla', 'msie', 'opera'];\n      var strategies = [];\n      strategies['default'] = function (iframe, $iframeBody, options, browser) {\n        // NOTE: this is how the plugin determines the iframe height, override if you need custom\n        return $iframeBody[0].scrollHeight + options.heightOffset;\n      };\n\n      jQuery.each(strategyKeys, function (index, value) {\n        // use the default strategy for all browsers, can be overridden if desired\n        strategies[value] = strategies['default'];\n      });\n\n      // override strategies if registered in options\n      jQuery.each(options.heightCalculationOverrides, function(index, value) {\n        strategies[value.browser] = value.calculation;\n      });\n\n      function findStrategy(browser) {\n        var strategy = null;\n\n        jQuery.each(strategyKeys, function (index, value) {\n          if (browser[value]) {\n            strategy = strategies[value];\n            return false;\n          }\n        });\n\n        if (strategy === null) {\n          strategy = strategies['default'];\n        }\n\n        return strategy;\n      }\n      // ******************************************************\n\n      // for use by webkit only\n      var loadCounter = 0;\n\n      // resizeHeight\n      function resizeHeight(iframe) {\n        if (options.diagnostics) {\n          showDiagnostics(iframe, \"resizeHeight\");\n        }\n\n        // set the iframe size to minHeight so it'll get smaller on resizes in FF and IE\n        if (options.resetToMinHeight && options.resetToMinHeight === true) {\n          iframe.style.height = options.minHeight + 'px';\n        }\n\n        // get the iframe body height and set inline style to that plus a little\n        var $body = $(iframe, window.top.document).contents().find('body');\n        var strategy = findStrategy($.browser);\n        var newHeight = strategy(iframe, $body, options, $.browser);\n        debug(newHeight);\n\n        if (newHeight < options.minHeight) {\n          debug(\"new height is less than minHeight\");\n          newHeight = options.minHeight + options.heightOffset;\n        }\n\n        debug(\"New Height: \" + newHeight);\n        if (options.animate) {\n          $(iframe).animate({height: newHeight + 'px'}, {duration: 500});\n        } else {\n          iframe.style.height = newHeight + 'px';\n        }\n\n        options.callback.apply($(iframe), [{newFrameHeight: newHeight}]);\n      } // END resizeHeight\n\n      // debug me\n      debug(this);\n      if (options.diagnostics) {\n        showDiagnostics(this, \"each iframe\");\n      }\n\n      // if trigger functions are registered, invoke them\n      if (options.triggerFunctions.length > 0) {\n        debug(options.triggerFunctions.length + \" trigger Functions\");\n        for (var i = 0; i < options.triggerFunctions.length; i++) {\n          options.triggerFunctions[i](resizeHeight, this);\n        }\n      }\n\n      // Check if browser is Opera or Safari (Webkit really, so includes Chrome)\n      if ($.browser.safari || $.browser.opera) {\n        debug(\"browser is webkit or opera\");\n\n        // Start timer when loaded.\n        $(this).load(function () {\n          var delay = 0;\n          var iframe = this;\n\n          var delayedResize = function () {\n            resizeHeight(iframe);\n          };\n\n          if (loadCounter === 0) {\n            // delay the first one\n            delay = 500;\n          } else {\n            // Reset iframe height to 0 to force new frame size to fit window properly\n            // this is only an issue when going from large to small iframe, not executed on page load\n            iframe.style.height = options.minHeight + 'px';\n          }\n\n          debug(\"load delay: \" + delay);\n          setTimeout(delayedResize, delay);\n          loadCounter++;\n        });\n\n        // Safari and Opera need a kick-start.\n        var source = $(this).attr('src');\n        $(this).attr('src', '');\n        $(this).attr('src', source);\n      } else {\n        // For other browsers.\n        $(this).load(function () {\n          resizeHeight(this);\n        });\n      } // if browser\n\n    }); // $(this).each(function () {\n  }; // $.fn.iframeAutoHeight = function (options) {\n}(jQuery)); // (function ($) {"
  },
  {
    "path": "release/jquery.iframe-auto-height.plugin.1.9.0.js",
    "content": "/*jslint white: true, indent: 2, onevar: false, browser: true, undef: true, nomen: false, eqeqeq: true, plusplus: false, bitwise: true, regexp: true, strict: false, newcap: true, immed: true */\n/*global window, console, jQuery, setTimeout */\n\n/*\n  Plugin: iframe autoheight jQuery Plugin\n  Version: 1.9.0\n  Author and Contributors\n  ========================================\n  NATHAN SMITH (http://sonspring.com/)\n  Jesse House (https://github.com/house9)\n  aaron manela (https://github.com/aaronmanela)\n  Hideki Abe (https://github.com/hideki-a)\n  Patrick Clark (https://github.com/hellopat)\n  ChristineP2 (https://github.com/ChristineP2)\n  Mmjavellana (https://github.com/Mmjavellana)\n  yiqing-95 (https://github.com/yiqing-95)\n  jcaspian (https://github.com/jcaspian)\n  adamjgray (https://github.com/adamjgray)\n  Jens Bissinger (https://github.com/dpree)\n\n  File: jquery.iframe-auto-height.plugin.js\n  Remarks: original code from http://sonspring.com/journal/jquery-iframe-sizing\n  Description: when the page loads set the height of an iframe based on the height of its contents\n  see README: http://github.com/house9/jquery-iframe-auto-height\n\n*/\n(function ($) {\n  $.fn.iframeAutoHeight = function (spec) {\n\n    // set default option values\n    var options = $.extend({\n        heightOffset: 0,\n        minHeight: 0,\n        callback: function (newHeight) {},\n        animate: false,\n        debug: false,\n        diagnostics: false, // used for development only\n        resetToMinHeight: false,\n        triggerFunctions: [],\n        heightCalculationOverrides: []\n      }, spec);\n\n    // logging\n    function debug(message) {\n      if (options.debug && options.debug === true && window.console) {\n        console.log(message);\n      }\n    }\n\n    // not used by production code\n    function showDiagnostics(iframe, calledFrom) {\n      debug(\"Diagnostics from '\" + calledFrom + \"'\");\n      try {\n        debug(\"  \" + $(iframe, window.top.document).contents().find('body')[0].scrollHeight + \" for ...find('body')[0].scrollHeight\");\n        debug(\"  \" + $(iframe.contentWindow.document).height() + \" for ...contentWindow.document).height()\");\n        debug(\"  \" + $(iframe.contentWindow.document.body).height() + \" for ...contentWindow.document.body).height()\");\n      } catch (ex) {\n        // ie fails when called during for each, ok later on\n        // probably not an issue if called in a document ready block\n        debug(\"  unable to check in this state\");\n      }\n      debug(\"End diagnostics -> results vary by browser and when diagnostics are requested\");\n    }\n\n    // show all option values\n    debug(options);\n\n    // ******************************************************\n    // iterate over the matched elements passed to the plugin ; return will make it chainable\n    return this.each(function () {\n\n      // ******************************************************\n      // http://api.jquery.com/jQuery.browser/\n      var strategyKeys = ['webkit', 'mozilla', 'msie', 'opera'];\n      var strategies = [];\n      strategies['default'] = function (iframe, $iframeBody, options, browser) {\n        // NOTE: this is how the plugin determines the iframe height, override if you need custom\n        return $iframeBody[0].scrollHeight + options.heightOffset;\n      };\n\n      jQuery.each(strategyKeys, function (index, value) {\n        // use the default strategy for all browsers, can be overridden if desired\n        strategies[value] = strategies['default'];\n      });\n\n      // override strategies if registered in options\n      jQuery.each(options.heightCalculationOverrides, function(index, value) {\n        strategies[value.browser] = value.calculation;\n      });\n\n      function findStrategy(browser) {\n        var strategy = null;\n\n        jQuery.each(strategyKeys, function (index, value) {\n          if (browser[value]) {\n            strategy = strategies[value];\n            return false;\n          }\n        });\n\n        if (strategy === null) {\n          strategy = strategies['default'];\n        }\n\n        return strategy;\n      }\n      // ******************************************************\n\n      // for use by webkit only\n      var loadCounter = 0;\n\n      // resizeHeight\n      function resizeHeight(iframe) {\n        if (options.diagnostics) {\n          showDiagnostics(iframe, \"resizeHeight\");\n        }\n\n        // set the iframe size to minHeight so it'll get smaller on resizes in FF and IE\n        if (options.resetToMinHeight && options.resetToMinHeight === true) {\n          iframe.style.height = options.minHeight + 'px';\n        }\n\n        // get the iframe body height and set inline style to that plus a little\n        var $body = $(iframe, window.top.document).contents().find('body');\n        var strategy = findStrategy($.browser);\n        var newHeight = strategy(iframe, $body, options, $.browser);\n        debug(newHeight);\n\n        if (newHeight < options.minHeight) {\n          debug(\"new height is less than minHeight\");\n          newHeight = options.minHeight + options.heightOffset;\n        }\n\n        debug(\"New Height: \" + newHeight);\n        if (options.animate) {\n          $(iframe).animate({height: newHeight + 'px'}, {duration: 500});\n        } else {\n          iframe.style.height = newHeight + 'px';\n        }\n\n        options.callback.apply($(iframe), [{newFrameHeight: newHeight}]);\n      } // END resizeHeight\n\n      // debug me\n      debug(this);\n      if (options.diagnostics) {\n        showDiagnostics(this, \"each iframe\");\n      }\n\n      // if trigger functions are registered, invoke them\n      if (options.triggerFunctions.length > 0) {\n        debug(options.triggerFunctions.length + \" trigger Functions\");\n        for (var i = 0; i < options.triggerFunctions.length; i++) {\n          options.triggerFunctions[i](resizeHeight, this);\n        }\n      }\n\n      // Check if browser is Webkit (Safari/Chrome) or Opera\n      if ($.browser.webkit || $.browser.opera) {\n        debug(\"browser is webkit or opera\");\n\n        // Start timer when loaded.\n        $(this).load(function () {\n          var delay = 0;\n          var iframe = this;\n\n          var delayedResize = function () {\n            resizeHeight(iframe);\n          };\n\n          if (loadCounter === 0) {\n            // delay the first one\n            delay = 500;\n          } else {\n            // Reset iframe height to 0 to force new frame size to fit window properly\n            // this is only an issue when going from large to small iframe, not executed on page load\n            iframe.style.height = options.minHeight + 'px';\n          }\n\n          debug(\"load delay: \" + delay);\n          setTimeout(delayedResize, delay);\n          loadCounter++;\n        });\n\n        // Safari and Opera need a kick-start.\n        var source = $(this).attr('src');\n        $(this).attr('src', '');\n        $(this).attr('src', source);\n      } else {\n        // For other browsers.\n        $(this).load(function () {\n          resizeHeight(this);\n        });\n      } // if browser\n\n    }); // $(this).each(function () {\n  }; // $.fn.iframeAutoHeight = function (options) {\n}(jQuery)); // (function ($) {"
  },
  {
    "path": "release/jquery.iframe-auto-height.plugin.1.9.1.js",
    "content": "/*jslint white: true, indent: 2, onevar: false, browser: true, undef: true, nomen: false, eqeqeq: true, plusplus: false, bitwise: true, regexp: true, strict: false, newcap: true, immed: true */\n/*global window, console, jQuery, setTimeout */\n\n/*\n  Plugin: iframe autoheight jQuery Plugin\n  Version: 1.9.1\n  Author and Contributors\n  ========================================\n  NATHAN SMITH (http://sonspring.com/)\n  Jesse House (https://github.com/house9)\n  aaron manela (https://github.com/aaronmanela)\n  Hideki Abe (https://github.com/hideki-a)\n  Patrick Clark (https://github.com/hellopat)\n  ChristineP2 (https://github.com/ChristineP2)\n  Mmjavellana (https://github.com/Mmjavellana)\n  yiqing-95 (https://github.com/yiqing-95)\n  jcaspian (https://github.com/jcaspian)\n  adamjgray (https://github.com/adamjgray)\n  Jens Bissinger (https://github.com/dpree)\n\n  File: jquery.iframe-auto-height.plugin.js\n  Remarks: original code from http://sonspring.com/journal/jquery-iframe-sizing\n  Description: when the page loads set the height of an iframe based on the height of its contents\n  see README: http://github.com/house9/jquery-iframe-auto-height\n\n*/\n(function ($) {\n  $.fn.iframeAutoHeight = function (spec) {\n\n    var undef;\n    if ($.browser == undef) {\n      message = [];\n      message.push(\"WARNING: you appear to be using a newer version of jquery which does not support the $.browser variable.\");\n      message.push(\"The jQuery iframe auto height plugin relies heavly on the $.browser features.\");\n      message.push(\"Install jquery-browser: https://raw.github.com/jquery/jquery-browser/master/src/jquery.browser.js\");\n      alert(message.join(\"\\n\"));\n      return $;\n    }\n\n    // set default option values\n    var options = $.extend({\n        heightOffset: 0,\n        minHeight: 0,\n        callback: function (newHeight) {},\n        animate: false,\n        debug: false,\n        diagnostics: false, // used for development only\n        resetToMinHeight: false,\n        triggerFunctions: [],\n        heightCalculationOverrides: []\n      }, spec);\n\n    // logging\n    function debug(message) {\n      if (options.debug && options.debug === true && window.console) {\n        console.log(message);\n      }\n    }\n\n    // not used by production code\n    function showDiagnostics(iframe, calledFrom) {\n      debug(\"Diagnostics from '\" + calledFrom + \"'\");\n      try {\n        debug(\"  \" + $(iframe, window.top.document).contents().find('body')[0].scrollHeight + \" for ...find('body')[0].scrollHeight\");\n        debug(\"  \" + $(iframe.contentWindow.document).height() + \" for ...contentWindow.document).height()\");\n        debug(\"  \" + $(iframe.contentWindow.document.body).height() + \" for ...contentWindow.document.body).height()\");\n      } catch (ex) {\n        // ie fails when called during for each, ok later on\n        // probably not an issue if called in a document ready block\n        debug(\"  unable to check in this state\");\n      }\n      debug(\"End diagnostics -> results vary by browser and when diagnostics are requested\");\n    }\n\n    // show all option values\n    debug(options);\n\n    // ******************************************************\n    // iterate over the matched elements passed to the plugin ; return will make it chainable\n    return this.each(function () {\n\n      // ******************************************************\n      // http://api.jquery.com/jQuery.browser/\n      var strategyKeys = ['webkit', 'mozilla', 'msie', 'opera'];\n      var strategies = [];\n      strategies['default'] = function (iframe, $iframeBody, options, browser) {\n        // NOTE: this is how the plugin determines the iframe height, override if you need custom\n        return $iframeBody[0].scrollHeight + options.heightOffset;\n      };\n\n      jQuery.each(strategyKeys, function (index, value) {\n        // use the default strategy for all browsers, can be overridden if desired\n        strategies[value] = strategies['default'];\n      });\n\n      // override strategies if registered in options\n      jQuery.each(options.heightCalculationOverrides, function(index, value) {\n        strategies[value.browser] = value.calculation;\n      });\n\n      function findStrategy(browser) {\n        var strategy = null;\n\n        jQuery.each(strategyKeys, function (index, value) {\n          if (browser[value]) {\n            strategy = strategies[value];\n            return false;\n          }\n        });\n\n        if (strategy === null) {\n          strategy = strategies['default'];\n        }\n\n        return strategy;\n      }\n      // ******************************************************\n\n      // for use by webkit only\n      var loadCounter = 0;\n\n      // resizeHeight\n      function resizeHeight(iframe) {\n        if (options.diagnostics) {\n          showDiagnostics(iframe, \"resizeHeight\");\n        }\n\n        // set the iframe size to minHeight so it'll get smaller on resizes in FF and IE\n        if (options.resetToMinHeight && options.resetToMinHeight === true) {\n          iframe.style.height = options.minHeight + 'px';\n        }\n\n        // get the iframe body height and set inline style to that plus a little\n        var $body = $(iframe, window.top.document).contents().find('body');\n        var strategy = findStrategy($.browser);\n        var newHeight = strategy(iframe, $body, options, $.browser);\n        debug(newHeight);\n\n        if (newHeight < options.minHeight) {\n          debug(\"new height is less than minHeight\");\n          newHeight = options.minHeight + options.heightOffset;\n        }\n\n        debug(\"New Height: \" + newHeight);\n        if (options.animate) {\n          $(iframe).animate({height: newHeight + 'px'}, {duration: 500});\n        } else {\n          iframe.style.height = newHeight + 'px';\n        }\n\n        options.callback.apply($(iframe), [{newFrameHeight: newHeight}]);\n      } // END resizeHeight\n\n      // debug me\n      debug(this);\n      if (options.diagnostics) {\n        showDiagnostics(this, \"each iframe\");\n      }\n\n      // if trigger functions are registered, invoke them\n      if (options.triggerFunctions.length > 0) {\n        debug(options.triggerFunctions.length + \" trigger Functions\");\n        for (var i = 0; i < options.triggerFunctions.length; i++) {\n          options.triggerFunctions[i](resizeHeight, this);\n        }\n      }\n\n      // Check if browser is Webkit (Safari/Chrome) or Opera\n      if ($.browser.webkit || $.browser.opera) {\n        debug(\"browser is webkit or opera\");\n\n        // Start timer when loaded.\n        $(this).load(function () {\n          var delay = 0;\n          var iframe = this;\n\n          var delayedResize = function () {\n            resizeHeight(iframe);\n          };\n\n          if (loadCounter === 0) {\n            // delay the first one\n            delay = 500;\n          } else {\n            // Reset iframe height to 0 to force new frame size to fit window properly\n            // this is only an issue when going from large to small iframe, not executed on page load\n            iframe.style.height = options.minHeight + 'px';\n          }\n\n          debug(\"load delay: \" + delay);\n          setTimeout(delayedResize, delay);\n          loadCounter++;\n        });\n\n        // Safari and Opera need a kick-start.\n        var source = $(this).attr('src');\n        $(this).attr('src', '');\n        $(this).attr('src', source);\n      } else {\n        // For other browsers.\n        $(this).load(function () {\n          resizeHeight(this);\n        });\n      } // if browser\n\n    }); // $(this).each(function () {\n  }; // $.fn.iframeAutoHeight = function (options) {\n}(jQuery)); // (function ($) {"
  },
  {
    "path": "release/jquery.iframe-auto-height.plugin.1.9.2.js",
    "content": "/*jslint white: true, indent: 2, onevar: false, browser: true, undef: true, nomen: false, eqeqeq: true, plusplus: false, bitwise: true, regexp: true, strict: false, newcap: true, immed: true */\n/*global window, console, jQuery, setTimeout */\n\n/*\n  Plugin: iframe autoheight jQuery Plugin\n  Version: 1.9.2\n  Author and Contributors\n  ========================================\n  NATHAN SMITH (http://sonspring.com/)\n  Jesse House (https://github.com/house9)\n  aaron manela (https://github.com/aaronmanela)\n  Hideki Abe (https://github.com/hideki-a)\n  Patrick Clark (https://github.com/hellopat)\n  ChristineP2 (https://github.com/ChristineP2)\n  Mmjavellana (https://github.com/Mmjavellana)\n  yiqing-95 (https://github.com/yiqing-95)\n  jcaspian (https://github.com/jcaspian)\n  adamjgray (https://github.com/adamjgray)\n  Jens Bissinger (https://github.com/dpree)\n\n  File: jquery.iframe-auto-height.plugin.js\n  Remarks: original code from http://sonspring.com/journal/jquery-iframe-sizing\n  Description: when the page loads set the height of an iframe based on the height of its contents\n  see README: http://github.com/house9/jquery-iframe-auto-height\n\n*/\n(function ($) {\n  $.fn.iframeAutoHeight = function (spec) {\n\n    var undef;\n    if ($.browser === undef) {\n      var message = [];\n      message.push(\"WARNING: you appear to be using a newer version of jquery which does not support the $.browser variable.\");\n      message.push(\"The jQuery iframe auto height plugin relies heavly on the $.browser features.\");\n      message.push(\"Install jquery-browser: https://raw.github.com/house9/jquery-iframe-auto-height/release/jquery.browser.js\");\n      alert(message.join(\"\\n\"));\n      return $;\n    }\n\n    // set default option values\n    var options = $.extend({\n        heightOffset: 0,\n        minHeight: 0,\n        callback: function (newHeight) {},\n        animate: false,\n        debug: false,\n        diagnostics: false, // used for development only\n        resetToMinHeight: false,\n        triggerFunctions: [],\n        heightCalculationOverrides: []\n      }, spec);\n\n    // logging\n    function debug(message) {\n      if (options.debug && options.debug === true && window.console) {\n        console.log(message);\n      }\n    }\n\n    // not used by production code\n    function showDiagnostics(iframe, calledFrom) {\n      debug(\"Diagnostics from '\" + calledFrom + \"'\");\n      try {\n        debug(\"  \" + $(iframe, window.top.document).contents().find('body')[0].scrollHeight + \" for ...find('body')[0].scrollHeight\");\n        debug(\"  \" + $(iframe.contentWindow.document).height() + \" for ...contentWindow.document).height()\");\n        debug(\"  \" + $(iframe.contentWindow.document.body).height() + \" for ...contentWindow.document.body).height()\");\n      } catch (ex) {\n        // ie fails when called during for each, ok later on\n        // probably not an issue if called in a document ready block\n        debug(\"  unable to check in this state\");\n      }\n      debug(\"End diagnostics -> results vary by browser and when diagnostics are requested\");\n    }\n\n    // show all option values\n    debug(options);\n\n    // ******************************************************\n    // iterate over the matched elements passed to the plugin ; return will make it chainable\n    return this.each(function () {\n\n      // ******************************************************\n      // http://api.jquery.com/jQuery.browser/\n      var strategyKeys = ['webkit', 'mozilla', 'msie', 'opera'];\n      var strategies = [];\n      strategies['default'] = function (iframe, $iframeBody, options, browser) {\n        // NOTE: this is how the plugin determines the iframe height, override if you need custom\n        return $iframeBody[0].scrollHeight + options.heightOffset;\n      };\n\n      jQuery.each(strategyKeys, function (index, value) {\n        // use the default strategy for all browsers, can be overridden if desired\n        strategies[value] = strategies['default'];\n      });\n\n      // override strategies if registered in options\n      jQuery.each(options.heightCalculationOverrides, function (index, value) {\n        strategies[value.browser] = value.calculation;\n      });\n\n      function findStrategy(browser) {\n        var strategy = null;\n\n        jQuery.each(strategyKeys, function (index, value) {\n          if (browser[value]) {\n            strategy = strategies[value];\n            return false;\n          }\n        });\n\n        if (strategy === null) {\n          strategy = strategies['default'];\n        }\n\n        return strategy;\n      }\n      // ******************************************************\n\n      // for use by webkit only\n      var loadCounter = 0;\n\n      // resizeHeight\n      function resizeHeight(iframe) {\n        if (options.diagnostics) {\n          showDiagnostics(iframe, \"resizeHeight\");\n        }\n\n        // set the iframe size to minHeight so it'll get smaller on resizes in FF and IE\n        if (options.resetToMinHeight && options.resetToMinHeight === true) {\n          iframe.style.height = options.minHeight + 'px';\n        }\n\n        // get the iframe body height and set inline style to that plus a little\n        var $body = $(iframe, window.top.document).contents().find('body');\n        var strategy = findStrategy($.browser);\n        var newHeight = strategy(iframe, $body, options, $.browser);\n        debug(newHeight);\n\n        if (newHeight < options.minHeight) {\n          debug(\"new height is less than minHeight\");\n          newHeight = options.minHeight + options.heightOffset;\n        }\n\n        debug(\"New Height: \" + newHeight);\n        if (options.animate) {\n          $(iframe).animate({height: newHeight + 'px'}, {duration: 500});\n        } else {\n          iframe.style.height = newHeight + 'px';\n        }\n\n        options.callback.apply($(iframe), [{newFrameHeight: newHeight}]);\n      } // END resizeHeight\n\n      // debug me\n      debug(this);\n      if (options.diagnostics) {\n        showDiagnostics(this, \"each iframe\");\n      }\n\n      // if trigger functions are registered, invoke them\n      if (options.triggerFunctions.length > 0) {\n        debug(options.triggerFunctions.length + \" trigger Functions\");\n        for (var i = 0; i < options.triggerFunctions.length; i++) {\n          options.triggerFunctions[i](resizeHeight, this);\n        }\n      }\n\n      // Check if browser is Webkit (Safari/Chrome) or Opera\n      if ($.browser.webkit || $.browser.opera) {\n        debug(\"browser is webkit or opera\");\n\n        // Start timer when loaded.\n        $(this).load(function () {\n          var delay = 0;\n          var iframe = this;\n\n          var delayedResize = function () {\n            resizeHeight(iframe);\n          };\n\n          if (loadCounter === 0) {\n            // delay the first one\n            delay = 500;\n          } else {\n            // Reset iframe height to 0 to force new frame size to fit window properly\n            // this is only an issue when going from large to small iframe, not executed on page load\n            iframe.style.height = options.minHeight + 'px';\n          }\n\n          debug(\"load delay: \" + delay);\n          setTimeout(delayedResize, delay);\n          loadCounter++;\n        });\n\n        // Safari and Opera need a kick-start.\n        var source = $(this).attr('src');\n        $(this).attr('src', '');\n        $(this).attr('src', source);\n      } else {\n        // For other browsers.\n        $(this).load(function () {\n          resizeHeight(this);\n        });\n      } // if browser\n\n    }); // $(this).each(function () {\n  }; // $.fn.iframeAutoHeight = function (options) {\n}(jQuery)); // (function ($) {"
  },
  {
    "path": "release/jquery.iframe-auto-height.plugin.1.9.3.js",
    "content": "/*jslint white: true, indent: 2, onevar: false, browser: true, undef: true, nomen: false, eqeqeq: true, plusplus: false, bitwise: true, regexp: true, strict: false, newcap: true, immed: true */\n/*global window, console, jQuery, setTimeout */\n\n/*\n  Plugin: iframe autoheight jQuery Plugin\n  Version: 1.9.3\n  Author and Contributors\n  ========================================\n  NATHAN SMITH (http://sonspring.com/)\n  Jesse House (https://github.com/house9)\n  aaron manela (https://github.com/aaronmanela)\n  Hideki Abe (https://github.com/hideki-a)\n  Patrick Clark (https://github.com/hellopat)\n  ChristineP2 (https://github.com/ChristineP2)\n  Mmjavellana (https://github.com/Mmjavellana)\n  yiqing-95 (https://github.com/yiqing-95)\n  jcaspian (https://github.com/jcaspian)\n  adamjgray (https://github.com/adamjgray)\n  Jens Bissinger (https://github.com/dpree)\n\n  File: jquery.iframe-auto-height.plugin.js\n  Remarks: original code from http://sonspring.com/journal/jquery-iframe-sizing\n  Description: when the page loads set the height of an iframe based on the height of its contents\n  see README: http://github.com/house9/jquery-iframe-auto-height\n\n*/\n(function ($) {\n  $.fn.iframeAutoHeight = function (spec) {\n\n    var undef;\n    if ($.browser === undef) {\n      var message = [];\n      message.push(\"WARNING: you appear to be using a newer version of jquery which does not support the $.browser variable.\");\n      message.push(\"The jQuery iframe auto height plugin relies heavly on the $.browser features.\");\n      message.push(\"Install jquery-browser: https://raw.github.com/house9/jquery-iframe-auto-height/master/release/jquery.browser.js\");\n      alert(message.join(\"\\n\"));\n      return $;\n    }\n\n    // set default option values\n    var options = $.extend({\n        heightOffset: 0,\n        minHeight: 0,\n        callback: function (newHeight) {},\n        animate: false,\n        debug: false,\n        diagnostics: false, // used for development only\n        resetToMinHeight: false,\n        triggerFunctions: [],\n        heightCalculationOverrides: []\n      }, spec);\n\n    // logging\n    function debug(message) {\n      if (options.debug && options.debug === true && window.console) {\n        console.log(message);\n      }\n    }\n\n    // not used by production code\n    function showDiagnostics(iframe, calledFrom) {\n      debug(\"Diagnostics from '\" + calledFrom + \"'\");\n      try {\n        debug(\"  \" + $(iframe, window.top.document).contents().find('body')[0].scrollHeight + \" for ...find('body')[0].scrollHeight\");\n        debug(\"  \" + $(iframe.contentWindow.document).height() + \" for ...contentWindow.document).height()\");\n        debug(\"  \" + $(iframe.contentWindow.document.body).height() + \" for ...contentWindow.document.body).height()\");\n      } catch (ex) {\n        // ie fails when called during for each, ok later on\n        // probably not an issue if called in a document ready block\n        debug(\"  unable to check in this state\");\n      }\n      debug(\"End diagnostics -> results vary by browser and when diagnostics are requested\");\n    }\n\n    // show all option values\n    debug(options);\n\n    // ******************************************************\n    // iterate over the matched elements passed to the plugin ; return will make it chainable\n    return this.each(function () {\n\n      // ******************************************************\n      // http://api.jquery.com/jQuery.browser/\n      var strategyKeys = ['webkit', 'mozilla', 'msie', 'opera'];\n      var strategies = [];\n      strategies['default'] = function (iframe, $iframeBody, options, browser) {\n        // NOTE: this is how the plugin determines the iframe height, override if you need custom\n        return $iframeBody[0].scrollHeight + options.heightOffset;\n      };\n\n      jQuery.each(strategyKeys, function (index, value) {\n        // use the default strategy for all browsers, can be overridden if desired\n        strategies[value] = strategies['default'];\n      });\n\n      // override strategies if registered in options\n      jQuery.each(options.heightCalculationOverrides, function (index, value) {\n        strategies[value.browser] = value.calculation;\n      });\n\n      function findStrategy(browser) {\n        var strategy = null;\n\n        jQuery.each(strategyKeys, function (index, value) {\n          if (browser[value]) {\n            strategy = strategies[value];\n            return false;\n          }\n        });\n\n        if (strategy === null) {\n          strategy = strategies['default'];\n        }\n\n        return strategy;\n      }\n      // ******************************************************\n\n      // for use by webkit only\n      var loadCounter = 0;\n\n      // resizeHeight\n      function resizeHeight(iframe) {\n        if (options.diagnostics) {\n          showDiagnostics(iframe, \"resizeHeight\");\n        }\n\n        // set the iframe size to minHeight so it'll get smaller on resizes in FF and IE\n        if (options.resetToMinHeight && options.resetToMinHeight === true) {\n          iframe.style.height = options.minHeight + 'px';\n        }\n\n        // get the iframe body height and set inline style to that plus a little\n        var $body = $(iframe, window.top.document).contents().find('body');\n        var strategy = findStrategy($.browser);\n        var newHeight = strategy(iframe, $body, options, $.browser);\n        debug(newHeight);\n\n        if (newHeight < options.minHeight) {\n          debug(\"new height is less than minHeight\");\n          newHeight = options.minHeight + options.heightOffset;\n        }\n\n        debug(\"New Height: \" + newHeight);\n        if (options.animate) {\n          $(iframe).animate({height: newHeight + 'px'}, {duration: 500});\n        } else {\n          iframe.style.height = newHeight + 'px';\n        }\n\n        options.callback.apply($(iframe), [{newFrameHeight: newHeight}]);\n      } // END resizeHeight\n\n      // debug me\n      debug(this);\n      if (options.diagnostics) {\n        showDiagnostics(this, \"each iframe\");\n      }\n\n      // if trigger functions are registered, invoke them\n      if (options.triggerFunctions.length > 0) {\n        debug(options.triggerFunctions.length + \" trigger Functions\");\n        for (var i = 0; i < options.triggerFunctions.length; i++) {\n          options.triggerFunctions[i](resizeHeight, this);\n        }\n      }\n\n      // Check if browser is Webkit (Safari/Chrome) or Opera\n      if ($.browser.webkit || $.browser.opera) {\n        debug(\"browser is webkit or opera\");\n\n        // Start timer when loaded.\n        $(this).load(function () {\n          var delay = 0;\n          var iframe = this;\n\n          var delayedResize = function () {\n            resizeHeight(iframe);\n          };\n\n          if (loadCounter === 0) {\n            // delay the first one\n            delay = 500;\n          } else {\n            // Reset iframe height to 0 to force new frame size to fit window properly\n            // this is only an issue when going from large to small iframe, not executed on page load\n            iframe.style.height = options.minHeight + 'px';\n          }\n\n          debug(\"load delay: \" + delay);\n          setTimeout(delayedResize, delay);\n          loadCounter++;\n        });\n\n        // Safari and Opera need a kick-start.\n        var source = $(this).attr('src');\n        $(this).attr('src', '');\n        $(this).attr('src', source);\n      } else {\n        // For other browsers.\n        $(this).load(function () {\n          resizeHeight(this);\n        });\n      } // if browser\n\n    }); // $(this).each(function () {\n  }; // $.fn.iframeAutoHeight = function (options) {\n}(jQuery)); // (function ($) {"
  },
  {
    "path": "release/jquery.iframe-auto-height.plugin.1.9.4.js",
    "content": "/*jslint white: true, indent: 2, onevar: false, browser: true, undef: true, nomen: false, eqeqeq: true, plusplus: false, bitwise: true, regexp: true, strict: false, newcap: true, immed: true */\n/*global window, console, jQuery, setTimeout */\n\n/*\n  Plugin: iframe autoheight jQuery Plugin\n  Version: 1.9.4\n  Author and Contributors\n  ========================================\n  NATHAN SMITH (http://sonspring.com/)\n  Jesse House (https://github.com/house9)\n  aaron manela (https://github.com/aaronmanela)\n  Hideki Abe (https://github.com/hideki-a)\n  Patrick Clark (https://github.com/hellopat)\n  ChristineP2 (https://github.com/ChristineP2)\n  Mmjavellana (https://github.com/Mmjavellana)\n  yiqing-95 (https://github.com/yiqing-95)\n  jcaspian (https://github.com/jcaspian)\n  adamjgray (https://github.com/adamjgray)\n  Jens Bissinger (https://github.com/dpree)\n\n  File: jquery.iframe-auto-height.plugin.js\n  Remarks: original code from http://sonspring.com/journal/jquery-iframe-sizing\n  Description: when the page loads set the height of an iframe based on the height of its contents\n  see README: http://github.com/house9/jquery-iframe-auto-height\n\n*/\n(function ($) {\n  $.fn.iframeAutoHeight = function (spec) {\n\n    var undef;\n    if ($.browser === undef) {\n      var message = [];\n      message.push(\"WARNING: you appear to be using a newer version of jquery which does not support the $.browser variable.\");\n      message.push(\"The jQuery iframe auto height plugin relies heavly on the $.browser features.\");\n      message.push(\"Install jquery-browser: https://raw.github.com/house9/jquery-iframe-auto-height/master/release/jquery.browser.js\");\n      alert(message.join(\"\\n\"));\n      return $;\n    }\n\n    // set default option values\n    var options = $.extend({\n        heightOffset: 0,\n        minHeight: 0,\n        maxHeight: 0,\n        callback: function (newHeight) {},\n        animate: false,\n        debug: false,\n        diagnostics: false, // used for development only\n        resetToMinHeight: false,\n        triggerFunctions: [],\n        heightCalculationOverrides: []\n      }, spec);\n\n    // logging\n    function debug(message) {\n      if (options.debug && options.debug === true && window.console) {\n        console.log(message);\n      }\n    }\n\n    // not used by production code\n    function showDiagnostics(iframe, calledFrom) {\n      debug(\"Diagnostics from '\" + calledFrom + \"'\");\n      try {\n        debug(\"  \" + $(iframe, window.top.document).contents().find('body')[0].scrollHeight + \" for ...find('body')[0].scrollHeight\");\n        debug(\"  \" + $(iframe.contentWindow.document).height() + \" for ...contentWindow.document).height()\");\n        debug(\"  \" + $(iframe.contentWindow.document.body).height() + \" for ...contentWindow.document.body).height()\");\n      } catch (ex) {\n        // ie fails when called during for each, ok later on\n        // probably not an issue if called in a document ready block\n        debug(\"  unable to check in this state\");\n      }\n      debug(\"End diagnostics -> results vary by browser and when diagnostics are requested\");\n    }\n\n    // show all option values\n    debug(options);\n\n    // ******************************************************\n    // iterate over the matched elements passed to the plugin ; return will make it chainable\n    return this.each(function () {\n\n      // ******************************************************\n      // http://api.jquery.com/jQuery.browser/\n      var strategyKeys = ['webkit', 'mozilla', 'msie', 'opera'];\n      var strategies = [];\n      strategies['default'] = function (iframe, $iframeBody, options, browser) {\n        // NOTE: this is how the plugin determines the iframe height, override if you need custom\n        return $iframeBody[0].scrollHeight + options.heightOffset;\n      };\n\n      jQuery.each(strategyKeys, function (index, value) {\n        // use the default strategy for all browsers, can be overridden if desired\n        strategies[value] = strategies['default'];\n      });\n\n      // override strategies if registered in options\n      jQuery.each(options.heightCalculationOverrides, function (index, value) {\n        strategies[value.browser] = value.calculation;\n      });\n\n      function findStrategy(browser) {\n        var strategy = null;\n\n        jQuery.each(strategyKeys, function (index, value) {\n          if (browser[value]) {\n            strategy = strategies[value];\n            return false;\n          }\n        });\n\n        if (strategy === null) {\n          strategy = strategies['default'];\n        }\n\n        return strategy;\n      }\n      // ******************************************************\n\n      // for use by webkit only\n      var loadCounter = 0;\n\n      // resizeHeight\n      function resizeHeight(iframe) {\n        if (options.diagnostics) {\n          showDiagnostics(iframe, \"resizeHeight\");\n        }\n\n        // set the iframe size to minHeight so it'll get smaller on resizes in FF and IE\n        if (options.resetToMinHeight && options.resetToMinHeight === true) {\n          iframe.style.height = options.minHeight + 'px';\n        }\n\n        // get the iframe body height and set inline style to that plus a little\n        var $body = $(iframe, window.top.document).contents().find('body');\n        var strategy = findStrategy($.browser);\n        var newHeight = strategy(iframe, $body, options, $.browser);\n        debug(newHeight);\n\n        if (newHeight < options.minHeight) {\n          debug(\"new height is less than minHeight\");\n          newHeight = options.minHeight;\n        }\n\n        if (options.maxHeight > 0 && newHeight > options.maxHeight) {\n          debug(\"new height is greater than maxHeight\");\n          newHeight = options.maxHeight;\n        }\n\n        newHeight += options.heightOffset;\n\n        debug(\"New Height: \" + newHeight);\n        if (options.animate) {\n          $(iframe).animate({height: newHeight + 'px'}, {duration: 500});\n        } else {\n          iframe.style.height = newHeight + 'px';\n        }\n\n        options.callback.apply($(iframe), [{newFrameHeight: newHeight}]);\n      } // END resizeHeight\n\n      // debug me\n      debug(this);\n      if (options.diagnostics) {\n        showDiagnostics(this, \"each iframe\");\n      }\n\n      // if trigger functions are registered, invoke them\n      if (options.triggerFunctions.length > 0) {\n        debug(options.triggerFunctions.length + \" trigger Functions\");\n        for (var i = 0; i < options.triggerFunctions.length; i++) {\n          options.triggerFunctions[i](resizeHeight, this);\n        }\n      }\n\n      // Check if browser is Webkit (Safari/Chrome) or Opera\n      if ($.browser.webkit || $.browser.opera) {\n        debug(\"browser is webkit or opera\");\n\n        // Start timer when loaded.\n        $(this).load(function () {\n          var delay = 0;\n          var iframe = this;\n\n          var delayedResize = function () {\n            resizeHeight(iframe);\n          };\n\n          if (loadCounter === 0) {\n            // delay the first one\n            delay = 500;\n          } else {\n            // Reset iframe height to 0 to force new frame size to fit window properly\n            // this is only an issue when going from large to small iframe, not executed on page load\n            iframe.style.height = options.minHeight + 'px';\n          }\n\n          debug(\"load delay: \" + delay);\n          setTimeout(delayedResize, delay);\n          loadCounter++;\n        });\n\n        // Safari and Opera need a kick-start.\n        var source = $(this).attr('src');\n        $(this).attr('src', '');\n        $(this).attr('src', source);\n      } else {\n        // For other browsers.\n        $(this).load(function () {\n          resizeHeight(this);\n        });\n      } // if browser\n\n    }); // $(this).each(function () {\n  }; // $.fn.iframeAutoHeight = function (options) {\n}(jQuery)); // (function ($) {\n"
  },
  {
    "path": "release/jquery.iframe-auto-height.plugin.1.9.5.js",
    "content": "/*jslint white: true, indent: 2, onevar: false, browser: true, undef: true, nomen: false, eqeqeq: true, plusplus: false, bitwise: true, regexp: true, strict: false, newcap: true, immed: true */\n/*global window, console, jQuery, setTimeout */\n\n/*\n  Plugin: iframe autoheight jQuery Plugin\n  Version: 1.9.5\n  Author and Contributors\n  ========================================\n  NATHAN SMITH (http://sonspring.com/)\n  Jesse House (https://github.com/house9)\n  aaron manela (https://github.com/aaronmanela)\n  Hideki Abe (https://github.com/hideki-a)\n  Patrick Clark (https://github.com/hellopat)\n  ChristineP2 (https://github.com/ChristineP2)\n  Mmjavellana (https://github.com/Mmjavellana)\n  yiqing-95 (https://github.com/yiqing-95)\n  jcaspian (https://github.com/jcaspian)\n  adamjgray (https://github.com/adamjgray)\n  Jens Bissinger (https://github.com/dpree)\n  jbreton (https://github.com/jbreton)\n  mindmelting (https://github.com/mindmelting)\n\n  File: jquery.iframe-auto-height.plugin.js\n  Remarks: original code from http://sonspring.com/journal/jquery-iframe-sizing\n  Description: when the page loads set the height of an iframe based on the height of its contents\n  see README: http://github.com/house9/jquery-iframe-auto-height\n\n*/\n(function ($) {\n  $.fn.iframeAutoHeight = function (spec) {\n\n    var undef;\n    if ($.browser === undef) {\n      var message = [];\n      message.push(\"WARNING: you appear to be using a newer version of jquery which does not support the $.browser variable.\");\n      message.push(\"The jQuery iframe auto height plugin relies heavly on the $.browser features.\");\n      message.push(\"Install jquery-browser: https://raw.github.com/house9/jquery-iframe-auto-height/master/release/jquery.browser.js\");\n      alert(message.join(\"\\n\"));\n      return $;\n    }\n\n    // set default option values\n    var options = $.extend({\n        heightOffset: 0,\n        minHeight: 0,\n        maxHeight: 0,\n        callback: function (newHeight) {},\n        animate: false,\n        debug: false,\n        diagnostics: false, // used for development only\n        resetToMinHeight: false,\n        triggerFunctions: [],\n        heightCalculationOverrides: []\n      }, spec);\n\n    // logging\n    function debug(message) {\n      if (options.debug && options.debug === true && window.console) {\n        console.log(message);\n      }\n    }\n\n    // not used by production code\n    function showDiagnostics(iframe, calledFrom) {\n      debug(\"Diagnostics from '\" + calledFrom + \"'\");\n      try {\n        debug(\"  \" + $(iframe, window.top.document).contents().find('body')[0].scrollHeight + \" for ...find('body')[0].scrollHeight\");\n        debug(\"  \" + $(iframe.contentWindow.document).height() + \" for ...contentWindow.document).height()\");\n        debug(\"  \" + $(iframe.contentWindow.document.body).height() + \" for ...contentWindow.document.body).height()\");\n      } catch (ex) {\n        // ie fails when called during for each, ok later on\n        // probably not an issue if called in a document ready block\n        debug(\"  unable to check in this state\");\n      }\n      debug(\"End diagnostics -> results vary by browser and when diagnostics are requested\");\n    }\n\n    // show all option values\n    debug(options);\n\n    // ******************************************************\n    // iterate over the matched elements passed to the plugin ; return will make it chainable\n    return this.each(function () {\n\n      // ******************************************************\n      // http://api.jquery.com/jQuery.browser/\n      var strategyKeys = ['webkit', 'mozilla', 'msie', 'opera'];\n      var strategies = {};\n      strategies['default'] = function (iframe, $iframeBody, options, browser) {\n        // NOTE: this is how the plugin determines the iframe height, override if you need custom\n        return $iframeBody[0].scrollHeight + options.heightOffset;\n      };\n\n      jQuery.each(strategyKeys, function (index, value) {\n        // use the default strategy for all browsers, can be overridden if desired\n        strategies[value] = strategies['default'];\n      });\n\n      // override strategies if registered in options\n      jQuery.each(options.heightCalculationOverrides, function (index, value) {\n        strategies[value.browser] = value.calculation;\n      });\n\n      function findStrategy(browser) {\n        var strategy = null;\n\n        jQuery.each(strategyKeys, function (index, value) {\n          if (browser[value]) {\n            strategy = strategies[value];\n            return false;\n          }\n        });\n\n        if (strategy === null) {\n          strategy = strategies['default'];\n        }\n\n        return strategy;\n      }\n      // ******************************************************\n\n      // for use by webkit only\n      var loadCounter = 0;\n\n      var iframeDoc = this.contentDocument || this.contentWindow.document;\n\n      // resizeHeight\n      function resizeHeight(iframe) {\n        if (options.diagnostics) {\n          showDiagnostics(iframe, \"resizeHeight\");\n        }\n\n        // set the iframe size to minHeight so it'll get smaller on resizes in FF and IE\n        if (options.resetToMinHeight && options.resetToMinHeight === true) {\n          iframe.style.height = options.minHeight + 'px';\n        }\n\n        // get the iframe body height and set inline style to that plus a little\n        var $body = $(iframe, window.top.document).contents().find('body');\n        var strategy = findStrategy($.browser);\n        var newHeight = strategy(iframe, $body, options, $.browser);\n        debug(newHeight);\n\n        if (newHeight < options.minHeight) {\n          debug(\"new height is less than minHeight\");\n          newHeight = options.minHeight;\n        }\n\n        if (options.maxHeight > 0 && newHeight > options.maxHeight) {\n          debug(\"new height is greater than maxHeight\");\n          newHeight = options.maxHeight;\n        }\n\n        newHeight += options.heightOffset;\n\n        debug(\"New Height: \" + newHeight);\n        if (options.animate) {\n          $(iframe).animate({height: newHeight + 'px'}, {duration: 500});\n        } else {\n          iframe.style.height = newHeight + 'px';\n        }\n\n        options.callback.apply($(iframe), [{newFrameHeight: newHeight}]);\n      } // END resizeHeight\n\n      // debug me\n      debug(this);\n      if (options.diagnostics) {\n        showDiagnostics(this, \"each iframe\");\n      }\n\n      // if trigger functions are registered, invoke them\n      if (options.triggerFunctions.length > 0) {\n        debug(options.triggerFunctions.length + \" trigger Functions\");\n        for (var i = 0; i < options.triggerFunctions.length; i++) {\n          options.triggerFunctions[i](resizeHeight, this);\n        }\n      }\n\n      // Check if browser is Webkit (Safari/Chrome) or Opera\n      if ($.browser.webkit || $.browser.opera || $.browser.chrome) {\n        debug(\"browser is webkit or opera\");\n\n        // Start timer when loaded.\n        $(this).load(function () {\n          var delay = 0;\n          var iframe = this;\n\n          var delayedResize = function () {\n            resizeHeight(iframe);\n          };\n\n          if (loadCounter === 0) {\n            // delay the first one\n            delay = 500;\n          } else {\n            // Reset iframe height to 0 to force new frame size to fit window properly\n            // this is only an issue when going from large to small iframe, not executed on page load\n            iframe.style.height = options.minHeight + 'px';\n          }\n\n          debug(\"load delay: \" + delay);\n          setTimeout(delayedResize, delay);\n          loadCounter++;\n        });\n\n        // Safari and Opera need a kick-start.\n        var source = $(this).attr('src');\n        $(this).attr('src', '');\n        $(this).attr('src', source);\n      } else {\n        // For other browsers.\n        if(iframeDoc.readyState  === 'complete') {\n          resizeHeight(this);\n        } else {\n          $(this).load(function () {\n            resizeHeight(this);\n          });\n        }\n      } // if browser\n\n    }); // $(this).each(function () {\n  }; // $.fn.iframeAutoHeight = function (options) {\n}(jQuery)); // (function ($) {\n"
  },
  {
    "path": "src/jquery-iframe-auto-height.js",
    "content": "(function ($) {\n  $.fn.iframeAutoHeight = function (spec) {\n\n    var undef;\n    if ($.browser === undef) {\n      var message = [];\n      message.push(\"WARNING: you appear to be using a newer version of jquery which does not support the $.browser variable.\");\n      message.push(\"The jQuery iframe auto height plugin relies heavly on the $.browser features.\");\n      message.push(\"Install jquery-browser: https://raw.github.com/house9/jquery-iframe-auto-height/master/release/jquery.browser.js\");\n      alert(message.join(\"\\n\"));\n      return $;\n    }\n\n    // set default option values\n    var options = $.extend({\n        heightOffset: 0,\n        minHeight: 0,\n        maxHeight: 0,\n        callback: function () {},\n        animate: false,\n        debug: false,\n        diagnostics: false, // used for development only\n        resetToMinHeight: false,\n        triggerFunctions: [],\n        heightCalculationOverrides: []\n      }, spec);\n\n    // logging\n    function debug(message) {\n      if (options.debug && options.debug === true && window.console) {\n        console.log(message);\n      }\n    }\n\n    // not used by production code\n    function showDiagnostics(iframe, calledFrom) {\n      debug(\"Diagnostics from '\" + calledFrom + \"'\");\n      try {\n        debug(\"  \" + $(iframe, window.parent).contents().find('body')[0].scrollHeight + \" for ...find('body')[0].scrollHeight\");\n        debug(\"  \" + $(iframe.contentWindow.document).height() + \" for ...contentWindow.document).height()\");\n        debug(\"  \" + $(iframe.contentWindow.document.body).height() + \" for ...contentWindow.document.body).height()\");\n      } catch (ex) {\n        // ie fails when called during for each, ok later on\n        // probably not an issue if called in a document ready block\n        debug(\"  unable to check in this state\");\n      }\n      debug(\"End diagnostics -> results vary by browser and when diagnostics are requested\");\n    }\n\n    // show all option values\n    debug(options);\n\n    // ******************************************************\n    // iterate over the matched elements passed to the plugin ; return will make it chainable\n    return this.each(function () {\n\n      // ******************************************************\n      // http://api.jquery.com/jQuery.browser/\n      var strategyKeys = ['webkit', 'mozilla', 'msie', 'opera', 'chrome'];\n      var strategies = {};\n      strategies['default'] = function (iframe, $iframeBody, options) {\n        // NOTE: this is how the plugin determines the iframe height, override if you need custom\n        return $iframeBody[0].scrollHeight + options.heightOffset;\n      };\n\n      jQuery.each(strategyKeys, function (index, value) {\n        // use the default strategy for all browsers, can be overridden if desired\n        strategies[value] = strategies['default'];\n      });\n\n      // override strategies if registered in options\n      jQuery.each(options.heightCalculationOverrides, function (index, value) {\n        strategies[value.browser] = value.calculation;\n      });\n\n      function findStrategy(browser) {\n        var strategy = null;\n\n        jQuery.each(strategyKeys, function (index, value) {\n          if (browser[value]) {\n            strategy = strategies[value];\n            return false;\n          }\n        });\n\n        if (strategy === null) {\n          strategy = strategies['default'];\n        }\n\n        return strategy;\n      }\n      // ******************************************************\n\n      // for use by webkit only\n      var loadCounter = 0;\n\n      var iframeDoc = this.contentDocument || this.contentWindow.document;\n\n      // resizeHeight\n      function resizeHeight(iframe) {\n        if (options.diagnostics) {\n          showDiagnostics(iframe, \"resizeHeight\");\n        }\n\n        // set the iframe size to minHeight so it'll get smaller on resizes in FF and IE\n        if (options.resetToMinHeight && options.resetToMinHeight === true) {\n          iframe.style.height = options.minHeight + 'px';\n        }\n\n        // get the iframe body height and set inline style to that plus a little\n        var $body = $(iframe, window.parent).contents().find('body');\n        var strategy = findStrategy($.browser);\n        var newHeight = strategy(iframe, $body, options, $.browser);\n        debug(newHeight);\n\n        if (newHeight < options.minHeight) {\n          debug(\"new height is less than minHeight\");\n          newHeight = options.minHeight;\n        }\n\n        if (options.maxHeight > 0 && newHeight > options.maxHeight) {\n          debug(\"new height is greater than maxHeight\");\n          newHeight = options.maxHeight;\n        }\n\n        newHeight += options.heightOffset;\n\n        debug(\"New Height: \" + newHeight);\n        if (options.animate) {\n          $(iframe).animate({height: newHeight + 'px'}, {duration: 500});\n        } else {\n          iframe.style.height = newHeight + 'px';\n        }\n\n        options.callback.apply($(iframe), [{newFrameHeight: newHeight}]);\n      } // END resizeHeight\n\n      // debug me\n      debug(this);\n      if (options.diagnostics) {\n        showDiagnostics(this, \"each iframe\");\n      }\n\n      // if trigger functions are registered, invoke them\n      if (options.triggerFunctions.length > 0) {\n        debug(options.triggerFunctions.length + \" trigger Functions\");\n        for (var i = 0; i < options.triggerFunctions.length; i++) {\n          options.triggerFunctions[i](resizeHeight, this);\n        }\n      }\n\n      // Check if browser is Webkit (Safari/Chrome) or Opera\n      if ($.browser.webkit || $.browser.opera || $.browser.chrome) {\n        debug(\"browser is webkit (Safari/Chrome) or opera\");\n\n        // Start timer when loaded.\n        $(this).load(function () {\n          var delay = 0;\n          var iframe = this;\n\n          var delayedResize = function () {\n            resizeHeight(iframe);\n          };\n\n          if (loadCounter === 0) {\n            // delay the first one\n            delay = 500;\n          } else {\n            // Reset iframe height to 0 to force new frame size to fit window properly\n            // this is only an issue when going from large to small iframe, not executed on page load\n            iframe.style.height = options.minHeight + 'px';\n          }\n\n          debug(\"load delay: \" + delay);\n          setTimeout(delayedResize, delay);\n          loadCounter++;\n        });\n\n        // Safari and Opera need a kick-start.\n        var source = $(this).attr('src');\n        $(this).attr('src', '');\n        $(this).attr('src', source);\n      } else {\n        // For other browsers.\n        if(iframeDoc.readyState  === 'complete') {\n          resizeHeight(this);\n        } else {\n          $(this).load(function () {\n            resizeHeight(this);\n          });\n        }\n      } // if browser\n\n    }); // $(this).each(function () {\n  }; // $.fn.iframeAutoHeight = function (options) {\n}(jQuery)); // (function ($) {\n"
  },
  {
    "path": "tasks/aliases.yaml",
    "content": "default:\n  - build\n\nbuild:\n  - clean\n  - jshint:src\n  - lintspaces:src\n  - umd\n  - concat\n  - uglify\n"
  },
  {
    "path": "tasks/changelog.js",
    "content": "module.exports = {\n  options: {\n    dest: 'CHANGELOG.md'\n  }\n};\n"
  },
  {
    "path": "tasks/clean.js",
    "content": "module.exports = {\n  dist: 'dist'\n};\n"
  },
  {
    "path": "tasks/concat.js",
    "content": "module.exports = {\n  options: {\n    banner: '<%= banner %>',\n    stripBanners: true\n  },\n  dist: {\n    src: ['dist/<%= pkg.name.replace(/.js$/, \"\") %>.js'],\n    dest: 'dist/<%= pkg.name.replace(/.js$/, \"\") %>.js'\n  }\n};\n"
  },
  {
    "path": "tasks/groc.js",
    "content": "module.exports = {\n  groc: {\n    files: {\n      src: ['src/**/*.js']\n    },\n    options: {\n      out: 'docs/'\n    }\n  }\n};\n"
  },
  {
    "path": "tasks/jshint.js",
    "content": "module.exports = {\n  options: {\n    jshintrc: '.jshintrc',\n    reporter: require('jshint-stylish')\n  },\n  gruntfile: {\n    src: ['Gruntfile.js', 'tasks/{,*/}*.js']\n  },\n  src: {\n    src: ['src/**/*.js']\n  },\n  test: {\n    src: ['test/**/*.js']\n  }\n};\n"
  },
  {
    "path": "tasks/lintspaces.js",
    "content": "module.exports = {\n  options: {\n    editorconfig: '.editorconfig'\n  },\n  gruntfile: {\n    src: ['Gruntfile.js', 'tasks/{,*/}*.js']\n  },\n  src: {\n    src: ['src/**/*.js']\n  },\n  test: {\n    src: ['test/spec/**/*.js']\n  }\n};\n"
  },
  {
    "path": "tasks/uglify.js",
    "content": "module.exports = {\n  options: {\n    banner: '<%= banner %>'\n  },\n  dist: {\n    src: '<%= concat.dist.dest %>',\n    dest: 'dist/<%= pkg.name.replace(/.js$/, \"\") %>.min.js'\n  }\n};\n"
  },
  {
    "path": "tasks/umd.js",
    "content": "module.exports = {\n  src: {\n    template: 'umd',\n    indent: '  ',\n    src: 'src/<%= pkg.name.replace(/.js$/, \"\") %>.js',\n    dest: 'dist/<%= pkg.name.replace(/.js$/, \"\") %>.js',\n    returnExportsGlobal: 'jquery-iframe-auto-height',\n    deps: {\n      default: [],\n      amd: [],\n      cjs: [],\n      global: []\n    }\n  }\n};\n"
  },
  {
    "path": "tasks/watch.js",
    "content": "module.exports = {\n  gruntfile: {\n    files: '<%= jshint.gruntfile.src %>',\n    tasks: [\n      'jshint:gruntfile',\n      'jscs:gruntfile',\n      'lintspaces:gruntfile'\n    ]\n  },\n  src: {\n    files: '<%= jshint.src.src %>',\n    tasks: [\n      'build'\n    ]\n  },\n  test: {\n    files: '<%= jshint.test.src %>',\n    tasks: [\n      'jshint:test',\n      'lintspaces:test'\n    ]\n  }\n};\n"
  },
  {
    "path": "vendor/jquery.browser.js",
    "content": "(function( jQuery ) {\n\tvar matched,\n\t\tuserAgent = navigator.userAgent || \"\";\n\n\t// Use of jQuery.browser is frowned upon.\n\t// More details: http://api.jquery.com/jQuery.browser\n\t// jQuery.uaMatch maintained for back-compat\n\tjQuery.uaMatch = function( ua ) {\n\t\tua = ua.toLowerCase();\n\n\t\tvar match = /(chrome)[ \\/]([\\w.]+)/.exec( ua ) ||\n\t\t\t/(webkit)[ \\/]([\\w.]+)/.exec( ua ) ||\n\t\t\t/(opera)(?:.*version)?[ \\/]([\\w.]+)/.exec( ua ) ||\n\t\t\t/(msie) ([\\w.]+)/.exec( ua ) ||\n\t\t\tua.indexOf(\"compatible\") < 0 && /(mozilla)(?:.*? rv:([\\w.]+))?/.exec( ua ) ||\n\t\t\t[];\n\n\t\treturn {\n\t\t\tbrowser: match[ 1 ] || \"\",\n\t\t\tversion: match[ 2 ] || \"0\"\n\t\t};\n\t};\n\n\tmatched = jQuery.uaMatch( userAgent );\n\n\tjQuery.browser = {};\n\n\tif ( matched.browser ) {\n\t\tjQuery.browser[ matched.browser ] = true;\n\t\tjQuery.browser.version = matched.version;\n\t}\n\n\t// Deprecated, use jQuery.browser.webkit instead\n\t// Maintained for back-compat only\n\tif ( jQuery.browser.webkit ) {\n\t\tjQuery.browser.safari = true;\n\t}\n\n}( jQuery ));"
  }
]