CINXE.COM
Wait Until Dark (Theatre) - TV Tropes
<!DOCTYPE html> <html> <head lang="en"> <link rel="alternate" type="application/rss+xml" href="https://tvtropes.org/pmwiki/rss-feed.php?filter=newest_pages" /> <link rel="alternate" type="application/rss+xml" href="https://tvtropes.org/pmwiki/rss-feed.php?filter=most_popular" /> <link rel="alternate" type="application/rss+xml" href="https://tvtropes.org/pmwiki/rss-feed.php?filter=updated_content" /> <link rel="preload" href="/images/loading-graphic.png" as="image"> <!-- Google tag (gtag.js) --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-XPPLXMRF6Z"></script> <script> var pbjs = pbjs || {}; // Used for Video players on Tropes var tropes_videos_commands = tropes_videos_commands || []; window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-XPPLXMRF6Z'); window.googletag = window.googletag || {cmd: []}; </script> <script> function object(objectId) { if (document.getElementById && document.getElementById(objectId)) { return document.getElementById(objectId); } else if (document.all && document.all(objectId)) { return document.all(objectId); } else if (document.layers && document.layers[objectId]) { return document.layers[objectId]; } else { return false; } } // JAVASCRIPT COOKIES CODE: for getting and setting user viewing preferences var cookies = { create: function (name, value, days2expire, path) { var date = new Date(); date.setTime(date.getTime() + (days2expire * 24 * 60 * 60 * 1000)); var expires = date.toUTCString(); document.cookie = name + '=' + value + ';' + 'expires=' + expires + ';domain=.tvtropes.org;' + 'path=' + path + ';'; }, createWithExpire: function(name, value, expires, path) { document.cookie = name + '=' + value + ';' + 'expires=' + expires + ';domain=.tvtropes.org;' + 'path=' + path + ';'; }, read: function (name) { var cookie_value = "", current_cookie = "", name_expr = name + "=", all_cookies = document.cookie.split(';'), n = all_cookies.length; for (var i = 0; i < n; i++) { current_cookie = all_cookies[i].trim(); if (current_cookie.indexOf(name_expr) === 0) { cookie_value = current_cookie.substring(name_expr.length, current_cookie.length); break; } } return cookie_value; }, update: function (name, val) { this.create(name, val, 300, "/"); }, remove: function (name) { //delete cookie with and without domain setting document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; domain=.tvtropes.org; path=/;"; document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/;"; } }; function updateUserPrefs() { //GENERAL: detect and set browser, if not cookied (will be treated like a user-preference and added to the #user-pref element) if( !cookies.read('user-browser') ){ var broswer = ''; if(navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i) ){ browser = 'iOS'; } else if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { browser = 'opera'; } else if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) { browser = 'MSIE'; } else if (/Navigator[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { browser = 'netscape'; } else if (/Chrome[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { browser = 'chrome'; } else if (/Safari[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { browser = 'safari'; /Version[\/\s](\d+\.\d+)/.test(navigator.userAgent); browserVersion = new Number(RegExp.$1); } else if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) { browser = 'firefox'; } else { browser = 'internet_explorer'; } cookies.create('user-browser',browser,1,'/'); document.getElementById('user-prefs').classList.add('browser-' + browser); } else { document.getElementById('user-prefs').classList.add('browser-' + cookies.read('user-browser')); } //update user preference settings if (cookies.read('wide-load') !== '') document.getElementById('user-prefs').classList.add('wide-load'); if (cookies.read('mono-font') !== '') document.getElementById('user-prefs').classList.add('mono-font'); if (cookies.read('night-vision') !== '') document.getElementById('user-prefs').classList.add('night-vision'); if (cookies.read('sticky-header') !== '') document.getElementById('user-prefs').classList.add('sticky-header'); if (cookies.read('show-spoilers') !== '') document.getElementById('user-prefs').classList.add('show-spoilers'); if (cookies.read('tvtropes-editor-on') !== '') document.getElementById('user-prefs').classList.add('tvtropes-editor-on'); if (cookies.read('folders-open') !== '') document.getElementById('user-prefs').classList.add('folders-open'); if (cookies.read('lefthand-sidebar') !== '') document.getElementById('user-prefs').classList.add('lefthand-sidebar'); if (cookies.read('highlight-links') !== '') document.getElementById('user-prefs').classList.add('highlight-links'); if (cookies.read('forum-gingerbread') !== '') document.getElementById('user-prefs').classList.add('forum-gingerbread'); //if the user is logged in, update cookies based on their database settings //updates element if(cookies.read('shared-avatars') !== '') document.getElementById('user-prefs').classList.add('shared-avatars'); if(cookies.read('new-search') !== '') document.getElementById('user-prefs').classList.add('new-search'); if(cookies.read('stop-auto-play-video') !== '') document.getElementById('user-prefs').classList.add('stop-auto-play-video'); //desktop view on mobile if (cookies.read('desktop-on-mobile') !== ''){ document.getElementById('user-prefs').classList.add('desktop-on-mobile'); var viewport = document.querySelector("meta[name=viewport]"); viewport.setAttribute('content', 'width=1000'); } } function updateDesktopPrefs() { if (cookies.read('wide-load') !== '') document.getElementById('sidebar-toggle-wideload').classList.add('active'); if (cookies.read('night-vision') !== '') document.getElementById('sidebar-toggle-nightvision').classList.add('active'); if (cookies.read('sticky-header') !== '') document.getElementById('sidebar-toggle-stickyheader').classList.add('active'); if (cookies.read('show-spoilers') !== '') document.getElementById('sidebar-toggle-showspoilers').classList.add('active'); } function updateMobilePrefs() { if (cookies.read('show-spoilers') !== '') document.getElementById('mobile-toggle-showspoilers').classList.add('active'); if (cookies.read('night-vision') !== '') document.getElementById('mobile-toggle-nightvision').classList.add('active'); if (cookies.read('sticky-header') !== '') document.getElementById('mobile-toggle-stickyheader').classList.add('active'); if (cookies.read('highlight-links') !== '') document.getElementById('mobile-toggle-highlightlinks').classList.add('active'); } function is_mobile() { if(document.body.clientWidth && document.body.clientWidth<=768) return true; else return false; } </script> <script type="text/javascript"> var country_code_list = ['AT','BE','BG','CH','CY','CZ','DE','DK','EE','ES','FI','FR','GB','GF','GP','GR','HR','HU','IC','IE','IS','IT','LI','LT','LU','LV','MF','MQ','MT','NL','NO','PL','PT','RE','RO','SE','SI','SK','SX','YT']; var site_htl_settings = { "adx" : "yes", // yes/no if we should include adx on page "groupname" : "Theatre", // track groupname in htl/gam "has_folders" : "no", // track folder pages in htl/gam "user_type" : "guest", // track member/guest in htl/gam "is_testing" : "no", // yes/no if in testing mode "split_testing" : "1", // 0/1, 0=control, 1=test, for a/b testing "send_reports" : "1", // true/false if reports should be sent for logging in DataBricks "report_url" : "https://analytics.tvtropes.org/analytics-data/tvtropes/", // Endpoint for logging (data stream) "logging_turned_on": "1", // true/false if console logging should be turned on "site_name" : "tvtropes", // Site name for display in logging "sticky_slot_names": ["tvtropes_dt_sticky", "tvtropes_m_sticky"], // Possible slot names for the sticky slot } </script> <script> // Create the ad project var ads_project = (function(sent_in_settings){ //default settings var setting_defaults = { "adx" : "yes", "groupname" : "", "has_folders" : "unknown", "user_type" : "guest", "is_testing" : "no", "split_testing" : "0", "send_reports" : "0", "logging_turned_on": "false", "site_name" : "site_name", "report_url" : "", "page_template" : "", "sticky_slot_names": [] } // Combine defaults with sent in parameters var project_settings = {...setting_defaults, ...sent_in_settings}; /*************************************** --------------- AD CODE --------------- ***************************************/ window.BCLighthouseTag = window.BCLighthouseTag || {}; window.BCLighthouseTag.cmd = window.BCLighthouseTag.cmd || []; BCLighthouseTag.cmd.push(function() { // Only set these if given in settings if(project_settings.groupname != "") BCLighthouseTag.setTargeting("groupname", project_settings.groupname); if(project_settings.page_template != "") BCLighthouseTag.setTargeting("page_template", project_settings.page_template); BCLighthouseTag.setTargeting("adx", project_settings.adx); BCLighthouseTag.setTargeting('website', project_settings.site_name); BCLighthouseTag.setTargeting('user_type', project_settings.user_type); BCLighthouseTag.setTargeting('has_folders', project_settings.has_folders); }); // Logging function output_logging(content){ if(project_settings.logging_turned_on){ if(typeof content == "string") console.log(project_settings.site_name + " Ads: " + content); else console.log(content); } } })(site_htl_settings); </script> <script type="text/javascript"> var tvtropes_config = { asteri_stream_enabled : "1", is_logged_in : "", live_server : "1", bigcrunch_live : "1", handle : "", email_popup : "0", troper_email : "", get_asteri_stream : "", revnum : "a1fdc3097a55e179219cd1bf535ab41b48dc60da", img_domain : "https://static.tvtropes.org", adblock : "1", adblock_url : "propermessage.io", universal_page_type : "Article", pause_editing : "0", pause_editing_msg : "", pause_site_changes : "0", assets_domain : "https://assets.tvtropes.org" }; // This will track the total number of ads inserted over time var globalAdInsertionCount = 0; // Check to see if this page is isolated, if so, run BCLighthouseTag.disableGoogleAdManager(); if(window.site_htl_settings.adx == "no"){ console.log("disabling google"); BCLighthouseTag.cmd.push(() => { BCLighthouseTag.disableGoogleAdManager(); }); } </script> <script> // Add second script to the head var htl_script = document.createElement('script'); htl_script.async = "async"; // Add the fundingchoices script to the head var script = document.createElement('script'); script.src = "https://fundingchoicesmessages.google.com/i/pub-6608306193529351?ers=1"; script.async = true; script.nonce = "rczD8qB5ececf2fL1Vj9XQ"; // Add second script to the head var script2 = document.createElement('script'); script2.nonce = "rczD8qB5ececf2fL1Vj9XQ"; script2.innerHTML = "(function() {function signalGooglefcPresent() {if (!window.frames['googlefcPresent']) {if (document.body) {const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe);} else {setTimeout(signalGooglefcPresent, 0);}}}signalGooglefcPresent();})();"; // Add both scripts to head document.head.appendChild(script); document.head.appendChild(script2); var bigcrunch_url = window.tvtropes_config.bigcrunch_live == 1 ? "https://lh.bigcrunch.com/main.js" : "https://dev-lh.bigcrunch.com/main.js"; htl_script.src = bigcrunch_url; htl_script.id = "bigcrunchtag"; htl_script.setAttribute('data-property-id', '34a5ddec-697b-424e-81d2-e6bb46a1b83e'); // Add both scripts to head document.head.appendChild(htl_script); </script> <script> // Add HTL script to head document.head.appendChild(htl_script); </script> <script>(function(){/* Copyright The Closure Library Authors. SPDX-License-Identifier: Apache-2.0 */ 'use strict';var aa=function(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}},ba="function"==typeof Object.create?Object.create:function(a){var b=function(){};b.prototype=a;return new b},k;if("function"==typeof Object.setPrototypeOf)k=Object.setPrototypeOf;else{var m;a:{var ca={a:!0},n={};try{n.__proto__=ca;m=n.a;break a}catch(a){}m=!1}k=m?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null} var p=k,q=function(a,b){a.prototype=ba(b.prototype);a.prototype.constructor=a;if(p)p(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.v=b.prototype},r=this||self,da=function(){},t=function(a){return a};var u;var w=function(a,b){this.g=b===v?a:""};w.prototype.toString=function(){return this.g+""};var v={},x=function(a){if(void 0===u){var b=null;var c=r.trustedTypes;if(c&&c.createPolicy){try{b=c.createPolicy("goog#html",{createHTML:t,createScript:t,createScriptURL:t})}catch(d){r.console&&r.console.error(d.message)}u=b}else u=b}a=(b=u)?b.createScriptURL(a):a;return new w(a,v)};var A=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)};var B={},C=null;var D="function"===typeof Uint8Array;function E(a,b,c){return"object"===typeof a?D&&!Array.isArray(a)&&a instanceof Uint8Array?c(a):F(a,b,c):b(a)}function F(a,b,c){if(Array.isArray(a)){for(var d=Array(a.length),e=0;e<a.length;e++){var f=a[e];null!=f&&(d[e]=E(f,b,c))}Array.isArray(a)&&a.s&&G(d);return d}d={};for(e in a)Object.prototype.hasOwnProperty.call(a,e)&&(f=a[e],null!=f&&(d[e]=E(f,b,c)));return d} function ea(a){return F(a,function(b){return"number"===typeof b?isFinite(b)?b:String(b):b},function(b){var c;void 0===c&&(c=0);if(!C){C={};for(var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),e=["+/=","+/","-_=","-_.","-_"],f=0;5>f;f++){var h=d.concat(e[f].split(""));B[f]=h;for(var g=0;g<h.length;g++){var l=h[g];void 0===C[l]&&(C[l]=g)}}}c=B[c];d=Array(Math.floor(b.length/3));e=c[64]||"";for(f=h=0;h<b.length-2;h+=3){var y=b[h],z=b[h+1];l=b[h+2];g=c[y>>2];y=c[(y&3)<< 4|z>>4];z=c[(z&15)<<2|l>>6];l=c[l&63];d[f++]=""+g+y+z+l}g=0;l=e;switch(b.length-h){case 2:g=b[h+1],l=c[(g&15)<<2]||e;case 1:b=b[h],d[f]=""+c[b>>2]+c[(b&3)<<4|g>>4]+l+e}return d.join("")})}var fa={s:{value:!0,configurable:!0}},G=function(a){Array.isArray(a)&&!Object.isFrozen(a)&&Object.defineProperties(a,fa);return a};var H;var J=function(a,b,c){var d=H;H=null;a||(a=d);d=this.constructor.u;a||(a=d?[d]:[]);this.j=d?0:-1;this.h=null;this.g=a;a:{d=this.g.length;a=d-1;if(d&&(d=this.g[a],!(null===d||"object"!=typeof d||Array.isArray(d)||D&&d instanceof Uint8Array))){this.l=a-this.j;this.i=d;break a}void 0!==b&&-1<b?(this.l=Math.max(b,a+1-this.j),this.i=null):this.l=Number.MAX_VALUE}if(c)for(b=0;b<c.length;b++)a=c[b],a<this.l?(a+=this.j,(d=this.g[a])?G(d):this.g[a]=I):(d=this.l+this.j,this.g[d]||(this.i=this.g[d]={}),(d=this.i[a])? G(d):this.i[a]=I)},I=Object.freeze(G([])),K=function(a,b){if(-1===b)return null;if(b<a.l){b+=a.j;var c=a.g[b];return c!==I?c:a.g[b]=G([])}if(a.i)return c=a.i[b],c!==I?c:a.i[b]=G([])},M=function(a,b){var c=L;if(-1===b)return null;a.h||(a.h={});if(!a.h[b]){var d=K(a,b);d&&(a.h[b]=new c(d))}return a.h[b]};J.prototype.toJSON=function(){var a=N(this,!1);return ea(a)}; var N=function(a,b){if(a.h)for(var c in a.h)if(Object.prototype.hasOwnProperty.call(a.h,c)){var d=a.h[c];if(Array.isArray(d))for(var e=0;e<d.length;e++)d[e]&&N(d[e],b);else d&&N(d,b)}return a.g},O=function(a,b){H=b=b?JSON.parse(b):null;a=new a(b);H=null;return a};J.prototype.toString=function(){return N(this,!1).toString()};var P=function(a){J.call(this,a)};q(P,J);function ha(a){var b,c=(a.ownerDocument&&a.ownerDocument.defaultView||window).document,d=null===(b=c.querySelector)||void 0===b?void 0:b.call(c,"script[nonce]");(b=d?d.nonce||d.getAttribute("nonce")||"":"")&&a.setAttribute("nonce",b)};var Q=function(a,b){b=String(b);"application/xhtml+xml"===a.contentType&&(b=b.toLowerCase());return a.createElement(b)},R=function(a){this.g=a||r.document||document};R.prototype.appendChild=function(a,b){a.appendChild(b)};var S=function(a,b,c,d,e,f){try{var h=a.g,g=Q(a.g,"SCRIPT");g.async=!0;g.src=b instanceof w&&b.constructor===w?b.g:"type_error:TrustedResourceUrl";ha(g);h.head.appendChild(g);g.addEventListener("load",function(){e();d&&h.head.removeChild(g)});g.addEventListener("error",function(){0<c?S(a,b,c-1,d,e,f):(d&&h.head.removeChild(g),f())})}catch(l){f()}};var ia=r.atob("aHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vaW1hZ2VzL2ljb25zL21hdGVyaWFsL3N5c3RlbS8xeC93YXJuaW5nX2FtYmVyXzI0ZHAucG5n"),ja=r.atob("WW91IGFyZSBzZWVpbmcgdGhpcyBtZXNzYWdlIGJlY2F1c2UgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlIGlzIGludGVyZmVyaW5nIHdpdGggdGhpcyBwYWdlLg=="),ka=r.atob("RGlzYWJsZSBhbnkgYWQgb3Igc2NyaXB0IGJsb2NraW5nIHNvZnR3YXJlLCB0aGVuIHJlbG9hZCB0aGlzIHBhZ2Uu"),la=function(a,b,c){this.h=a;this.j=new R(this.h);this.g=null;this.i=[];this.l=!1;this.o=b;this.m=c},V=function(a){if(a.h.body&&!a.l){var b= function(){T(a);r.setTimeout(function(){return U(a,3)},50)};S(a.j,a.o,2,!0,function(){r[a.m]||b()},b);a.l=!0}},T=function(a){for(var b=W(1,5),c=0;c<b;c++){var d=X(a);a.h.body.appendChild(d);a.i.push(d)}b=X(a);b.style.bottom="0";b.style.left="0";b.style.position="fixed";b.style.width=W(100,110).toString()+"%";b.style.zIndex=W(2147483544,2147483644).toString();b.style["background-color"]=ma(249,259,242,252,219,229);b.style["box-shadow"]="0 0 12px #888";b.style.color=ma(0,10,0,10,0,10);b.style.display= "flex";b.style["justify-content"]="center";b.style["font-family"]="Roboto, Arial";c=X(a);c.style.width=W(80,85).toString()+"%";c.style.maxWidth=W(750,775).toString()+"px";c.style.margin="24px";c.style.display="flex";c.style["align-items"]="flex-start";c.style["justify-content"]="center";d=Q(a.j.g,"IMG");d.className=A();d.src=ia;d.style.height="24px";d.style.width="24px";d.style["padding-right"]="16px";var e=X(a),f=X(a);f.style["font-weight"]="bold";f.textContent=ja;var h=X(a);h.textContent=ka;Y(a, e,f);Y(a,e,h);Y(a,c,d);Y(a,c,e);Y(a,b,c);a.g=b;a.h.body.appendChild(a.g);b=W(1,5);for(c=0;c<b;c++)d=X(a),a.h.body.appendChild(d),a.i.push(d)},Y=function(a,b,c){for(var d=W(1,5),e=0;e<d;e++){var f=X(a);b.appendChild(f)}b.appendChild(c);c=W(1,5);for(d=0;d<c;d++)e=X(a),b.appendChild(e)},W=function(a,b){return Math.floor(a+Math.random()*(b-a))},ma=function(a,b,c,d,e,f){return"rgb("+W(Math.max(a,0),Math.min(b,255)).toString()+","+W(Math.max(c,0),Math.min(d,255)).toString()+","+W(Math.max(e,0),Math.min(f, 255)).toString()+")"},X=function(a){a=Q(a.j.g,"DIV");a.className=A();return a},U=function(a,b){0>=b||null!=a.g&&0!=a.g.offsetHeight&&0!=a.g.offsetWidth||(na(a),T(a),r.setTimeout(function(){return U(a,b-1)},50))},na=function(a){var b=a.i;var c="undefined"!=typeof Symbol&&Symbol.iterator&&b[Symbol.iterator];b=c?c.call(b):{next:aa(b)};for(c=b.next();!c.done;c=b.next())(c=c.value)&&c.parentNode&&c.parentNode.removeChild(c);a.i=[];(b=a.g)&&b.parentNode&&b.parentNode.removeChild(b);a.g=null};var pa=function(a,b,c,d,e){var f=oa(c),h=function(l){l.appendChild(f);r.setTimeout(function(){f?(0!==f.offsetHeight&&0!==f.offsetWidth?b():a(),f.parentNode&&f.parentNode.removeChild(f)):a()},d)},g=function(l){document.body?h(document.body):0<l?r.setTimeout(function(){g(l-1)},e):b()};g(3)},oa=function(a){var b=document.createElement("div");b.className=a;b.style.width="1px";b.style.height="1px";b.style.position="absolute";b.style.left="-10000px";b.style.top="-10000px";b.style.zIndex="-10000";return b};var L=function(a){J.call(this,a)};q(L,J);var qa=function(a){J.call(this,a)};q(qa,J);var ra=function(a,b){this.l=a;this.m=new R(a.document);this.g=b;this.i=K(this.g,1);b=M(this.g,2);this.o=x(K(b,4)||"");this.h=!1;b=M(this.g,13);b=x(K(b,4)||"");this.j=new la(a.document,b,K(this.g,12))};ra.prototype.start=function(){sa(this)}; var sa=function(a){ta(a);S(a.m,a.o,3,!1,function(){a:{var b=a.i;var c=r.btoa(b);if(c=r[c]){try{var d=O(P,r.atob(c))}catch(e){b=!1;break a}b=b===K(d,1)}else b=!1}b?Z(a,K(a.g,14)):(Z(a,K(a.g,8)),V(a.j))},function(){pa(function(){Z(a,K(a.g,7));V(a.j)},function(){return Z(a,K(a.g,6))},K(a.g,9),K(a.g,10),K(a.g,11))})},Z=function(a,b){a.h||(a.h=!0,a=new a.l.XMLHttpRequest,a.open("GET",b,!0),a.send())},ta=function(a){var b=r.btoa(a.i);a.l[b]&&Z(a,K(a.g,5))};(function(a,b){r[a]=function(c){for(var d=[],e=0;e<arguments.length;++e)d[e-0]=arguments[e];r[a]=da;b.apply(null,d)}})("__h82AlnkH6D91__",function(a){"function"===typeof window.atob&&(new ra(window,O(qa,window.atob(a)))).start()});}).call(this); window.__h82AlnkH6D91__("WyJwdWItMjU3NTc4ODY5MDc5ODI4MiIsW251bGwsbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9iL3B1Yi0yNTc1Nzg4NjkwNzk4MjgyIl0sbnVsbCxudWxsLCJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9lbC9BR1NLV3hWV0tMOXhFeS1ZVk1sOTdzcC10MW5mbkxvWmZweWVjaGRJdUxJU244LXpjbUwxM1R5Mlhhb2RoQTJFU3VNS3ljQm1kVHgxSUNlMVBrX2hIeUxHa1ZZNHJ3XHUwMDNkXHUwMDNkP3RlXHUwMDNkVE9LRU5fRVhQT1NFRCIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFZCeVhDdDlWajY1eXNrMWFHVW9LUUpLdktrTlh4WVdlRDBhYnhmS3RVUi00eDZfRTNWOXpqSm5vYkFfVzIxeGNDb3F3M1RmN1dYRmxXZFZaazVMMFlQQ2dcdTAwM2RcdTAwM2Q/YWJcdTAwM2QxXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFV4bEsxQ0dxcEpGY3lvcXZXZ0ZnWWRBRjhMMzBOU0Y1ci1paGZSd1VRNzV4YmF6NGxydWVfRUhoWmU1ai00UUhRYXc4MUVZREFkQ2pBN21Tb1BxUUsxaFFcdTAwM2RcdTAwM2Q/YWJcdTAwM2QyXHUwMDI2c2JmXHUwMDNkMSIsImh0dHBzOi8vZnVuZGluZ2Nob2ljZXNtZXNzYWdlcy5nb29nbGUuY29tL2VsL0FHU0tXeFZJUWxpOV9jN0NuWWlHWkU3S2xIV2JWVi10NlpYQ2hQTnlHVTRobGhmSjdLQnJnNjllSFhHYm9aSXRqRm42MDViNWpuaG5KYkxCcU1ySURyY2lLVEk0VmdcdTAwM2RcdTAwM2Q/c2JmXHUwMDNkMiIsImRpdi1ncHQtYWQiLDIwLDEwMCwiY0hWaUxUSTFOelUzT0RnMk9UQTNPVGd5T0RJXHUwMDNkIixbbnVsbCxudWxsLG51bGwsImh0dHBzOi8vd3d3LmdzdGF0aWMuY29tLzBlbW4vZi9wL3B1Yi0yNTc1Nzg4NjkwNzk4MjgyLmpzP3VzcXBcdTAwM2RDQkEiXSwiaHR0cHM6Ly9mdW5kaW5nY2hvaWNlc21lc3NhZ2VzLmdvb2dsZS5jb20vZWwvQUdTS1d4V1hNUEJXZjVaNURyT1VGdDZwVVR5eGh1YzBFNlVGQnJJZUhuUUNCMVlUOWVtYlJTbGxYQ3F6NDV5ODdqT3RVWC1SX3JkcmdudFdjejdtazA2WkZYWDQyd1x1MDAzZFx1MDAzZCJd"); </script> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Wait Until Dark (Theatre) - TV Tropes</title> <meta name="description" content="Wait Until Dark is a mystery/thriller play by Frederick Knott. The heroine is the recently-blinded Susy Hendrix, a Greenwich Village housewife who becomes …" /> <link rel="canonical" href="https://tvtropes.org/pmwiki/pmwiki.php/Theatre/WaitUntilDark" /> <link rel="shortcut icon" href="https://assets.tvtropes.org/img/icons/favicon.ico" type="image/x-icon" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@tvtropes" /> <meta name="twitter:owner" content="@tvtropes" /> <meta name="twitter:title" content="Wait Until Dark (Theatre) - TV Tropes" /> <meta name="twitter:description" content="Wait Until Dark is a mystery/thriller play by Frederick Knott. The heroine is the recently-blinded Susy Hendrix, a Greenwich Village housewife who becomes …" /> <meta name="twitter:image:src" content="https://static.tvtropes.org/pmwiki/pub/images/wait_until_dark_1967_poster.jpg" /> <meta property="og:site_name" content="TV Tropes" /> <meta property="og:locale" content="en_US" /> <meta property="article:publisher" content="https://www.facebook.com/tvtropes" /> <meta property="og:title" content="Wait Until Dark - TV Tropes" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://tvtropes.org/pmwiki/pmwiki.php/Theatre/WaitUntilDark" /> <meta property="og:image" content="https://static.tvtropes.org/pmwiki/pub/images/wait_until_dark_1967_poster.jpg" /> <meta property="og:description" content="Wait Until Dark is a mystery/thriller play by Frederick Knott. The heroine is the recently-blinded Susy Hendrix, a Greenwich Village housewife who becomes the target of three men searching for the heroin hidden inside a porcelain doll, which her …" /> <meta name="robots" content="max-image-preview:large"> <link rel="apple-touch-icon" sizes="57x57" href="https://assets.tvtropes.org/img/icons/apple-icon-57x57.png" type="image/png"> <link rel="apple-touch-icon" sizes="60x60" href="https://assets.tvtropes.org/img/icons/apple-icon-60x60.png" type="image/png"> <link rel="apple-touch-icon" sizes="72x72" href="https://assets.tvtropes.org/img/icons/apple-icon-72x72.png" type="image/png"> <link rel="apple-touch-icon" sizes="76x76" href="https://assets.tvtropes.org/img/icons/apple-icon-76x76.png" type="image/png"> <link rel="apple-touch-icon" sizes="114x114" href="https://assets.tvtropes.org/img/icons/apple-icon-114x114.png" type="image/png"> <link rel="apple-touch-icon" sizes="120x120" href="https://assets.tvtropes.org/img/icons/apple-icon-120x120.png" type="image/png"> <link rel="apple-touch-icon" sizes="144x144" href="https://assets.tvtropes.org/img/icons/apple-icon-144x144.png" type="image/png"> <link rel="apple-touch-icon" sizes="152x152" href="https://assets.tvtropes.org/img/icons/apple-icon-152x152.png" type="image/png"> <link rel="apple-touch-icon" sizes="180x180" href="https://assets.tvtropes.org/img/icons/apple-icon-180x180.png" type="image/png"> <link rel="icon" sizes="16x16" href="https://assets.tvtropes.org/img/icons/favicon-16x16.png" type="image/png"> <link rel="icon" sizes="32x32" href="https://assets.tvtropes.org/img/icons/favicon-32x32.png" type="image/png"> <link rel="icon" sizes="96x96" href="https://assets.tvtropes.org/img/icons/favicon-96x96.png" type="image/png"> <link rel="icon" sizes="192x192" href="https://assets.tvtropes.org/img/icons/favicon-192x192.png" type="image/png"> <meta id="viewport" name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"> <link rel="stylesheet" href="https://assets.tvtropes.org/design/assets/bundle.css?rev=a1fdc3097a55e179219cd1bf535ab41b48dc60da" /> <script type="text/javascript"> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-3821842-1', 'auto'); ga('send', 'pageview'); </script> <script> !function(f,b,e,v,n,t,s) {if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)}; if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t,s)}(window, document,'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '850567933835915'); fbq('track', 'PageView'); </script> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=850567933835915&ev=PageView&noscript=1" /></noscript> <script> !function(w,d){if(!w.rdt){var p=w.rdt=function(){p.sendEvent?p.sendEvent.apply(p,arguments):p.callQueue.push(arguments)};p.callQueue=[];var t=d.createElement("script");t.src="https://www.redditstatic.com/ads/pixel.js",t.async=!0;var s=d.getElementsByTagName("script")[0];s.parentNode.insertBefore(t,s)}}(window,document); rdt('init','a2_fksv8rryv493'); rdt('track', 'PageVisit'); </script> </head> <body class=""> <i id="user-prefs"></i> <script>updateUserPrefs();</script> <div id="fb-root"></div> <div id="modal-box"> <div class="modal-loading-graphic"></div> </div> <style> @keyframes rotate-forever { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } #modal-box > .modal-loading-graphic { display: none; /* Hidden by default */ background: no-repeat center url('/images/loading-graphic.png'); background-size: 80px 80px; width: 80px; height: 80px; border-radius: 50%; position: absolute; top: calc(30% - 40px); left: calc(50% - 40px); z-index: 2; animation: rotate-forever 0.34s linear infinite; } #modal-box.active > .modal-loading-graphic { display: block; /* Show only when modal is active */ } </style> <header id="main-header-bar" class="headroom-element "> <div id="main-header-bar-inner"> <span id="header-spacer-left" class="header-spacer"></span> <a href="#mobile-menu" id="main-mobile-toggle" class="mobile-menu-toggle-button tablet-on"><span></span><span></span><span></span></a> <a href="/" id="main-header-logoButton" class="no-dev"></a> <span id="header-spacer-right" class="header-spacer"></span> <nav id="main-header-nav" class="tablet-off"> <a href="/pmwiki/pmwiki.php/Main/Tropes">Tropes</a> <a href="/pmwiki/pmwiki.php/Main/Media">Media</a> <a href="/pmwiki/browse.php" class="nav-browse">Browse</a> <a href="/pmwiki/popular-pages.php">Popular</a> <a href="/pmwiki/topics.php">Forums</a> <a href="/pmwiki/recent_videos.php" class="nav-browse">Videos</a> </nav> <div id="main-header-bar-right"> <div id="signup-login-box" class="font-xs mobile-off"> <a href="#" class="hover-underline bold" data-modal-target="signup">Join</a> <a href="#" class="hover-underline bold" data-modal-target="login">Login</a> </div> <div id="signup-login-mobileToggle" class="mobile-on inline"> <a href="#" data-modal-target="login"><i class="fa fa-user"></i></a> </div> <div id="search-box"> <form class="search" action="/pmwiki/search_result.php"> <input type="text" name="q" class="search-box" placeholder="Search" value="" required> <input type="submit" class="submit-button" value="" /> <input type="hidden" name="search_type" value="article"> <input type="hidden" name="page_type" value="all"> <input type="hidden" name="cx" value="partner-pub-6610802604051523:amzitfn8e7v"> <input type="hidden" name="cof" value="FORID:10"> <input type="hidden" name="ie" value="ISO-8859-1"> <input name="siteurl" type="hidden" value=""> <input name="ref" type="hidden" value=""> <input name="ss" type="hidden" value=""> </form> <a href="#close-search" class="mobile-on mobile-search-toggle close-x"><i class="fa fa-close"></i></a> </div> <div id="random-box"> <a href="/pmwiki/pmwiki.php/Main/UnwittingPawn" class="button-random-trope" rel="nofollow" onclick="gtag('event', 'trope_random_button_click', {'is_user': 0});"></a> <a href="/pmwiki/pmwiki.php/Creator/MattWinston" class="button-random-media" rel="nofollow" onclick="gtag('event', 'media_random_button_click', {'is_user': 0});"></a> </div> </div> </div> <div id="mobile-menu" class="tablet-on"><div class="mobile-menu-options"> <div class="nav-wrapper"> <a href="/pmwiki/pmwiki.php/Main/Tropes" class="xl">Tropes</a> <a href="/pmwiki/pmwiki.php/Main/Media" class="xl">Media</a> <a href="/pmwiki/browse.php" class="xl">Browse</a> <a href="/pmwiki/popular-pages.php" class="xl">Popular</a> <a href="/pmwiki/index_report.php" class="xl">Indexes</a> <a href="/pmwiki/topics.php" class="xl">Forums</a> <a href="/pmwiki/recent_videos.php" class="xl">Videos</a> <a href="/pmwiki/query.php?type=att">Ask The Tropers</a> <a href="/pmwiki/query.php?type=tf">Trope Finder</a> <a href="/pmwiki/query.php?type=ykts">Media Finder</a> <a href="/pmwiki/tlp_activity.php">Trope Launch Pad</a> <a href="/pmwiki/query.php?type=wl">Tech Wishlist</a> <a href="/pmwiki/review_activity.php">Reviews</a> <a href="#tools" data-click-toggle="active">Tools <i class="fa fa-chevron-down"></i></a> <div class="tools-dropdown mobile-dropdown-linkList"> <a href="/pmwiki/cutlist.php" data-modal-target="login" rel="nofollow">Cut List</a> <a href="/pmwiki/image-fixer.php" data-modal-target="login" rel="nofollow">Image Fixer</a> <a href="/pmwiki/changes.php">New Edits</a> <a href="/pmwiki/articles_new.php">New Articles</a> <a href="/pmwiki/recent_edit_reasons.php">Edit Reasons</a> <a href="/pmwiki/launches.php" data-modal-target="login" rel="nofollow">Launches</a> <a href="/pmwiki/img_list.php" data-modal-target="login" rel="nofollow">Images List</a> <a href="/pmwiki/crown_activity.php">Crowner Activity</a> <a href="/pmwiki/no_types.php">Un-typed Pages</a> <a href="/pmwiki/page_type_audit.php">Recent Page Type Changes</a> <a href="/pmwiki/changelog.php">Changelog</a> </div> <a href="#tips" data-click-toggle="active">Tips <i class="fa fa-chevron-down"></i></a> <div class="tips-dropdown mobile-dropdown-linkList"> <a href="/pmwiki/pmwiki.php/Administrivia/CreatingNewRedirects">Creating New Redirects</a> <a href="/pmwiki/pmwiki.php/Administrivia/Crosswicking">Cross Wicking</a> <a href="/pmwiki/pmwiki.php/Administrivia/TipsForEditing">Tips for Editing</a> <a href="/pmwiki/pmwiki.php/Administrivia/TextFormattingRules">Text Formatting Rules</a> <a href="/pmwiki/pmwiki.php/Administrivia/TVTropesGlossary?from=Main.TVTropesGlossary">Glossary</a> <a href="/pmwiki/pmwiki.php/Administrivia/EditReasonsAndWhyYouShouldUseThem">Edit Reasons</a> <a href="/pmwiki/pmwiki.php/Administrivia/HandlingSpoilers">Handling Spoilers</a> <a href="/pmwiki/pmwiki.php/Administrivia/WordCruft">Word Cruft</a> <a href="/pmwiki/pmwiki.php/Main/Administrivia">Administrivia</a> <a href="/pmwiki/pmwiki.php/Main/FAQ">FAQ</a> </div> <a href="#hq" data-click-toggle="active">Tropes HQ <i class="fa fa-chevron-down"></i></a> <div class="tools-dropdown mobile-dropdown-linkList"> <a href="/pmwiki/about.php">About Us</a> <a href="/pmwiki/contact.php">Contact Us</a> <a href="/pmwiki/dmca.php">DMCA Notice</a> <a href="/pmwiki/privacypolicy.php">Privacy Policy</a> <a href="/pmwiki/query.php?type=bug">Report Bug</a> </div> <a href="/pmwiki/ad-free-subscribe.php">Go Ad-Free</a> <a href="/pmwiki/changelog.php">Changelog</a></li> <div class="toggle-switches"> <ul class="mobile-menu display-toggles"> <li>Show Spoilers <div id="mobile-toggle-showspoilers" class="display-toggle show-spoilers"></div></li> <li>Night Vision <div id="mobile-toggle-nightvision" class="display-toggle night-vision"></div></li> <li>Sticky Header <div id="mobile-toggle-stickyheader" class="display-toggle sticky-header"></div></li> <li>Highlight Links <div id="mobile-toggle-highlightlinks" class="display-toggle highlight-links"></div></li> </ul> <script>updateMobilePrefs();</script> </div> </div> </div> </div> </header> <div id="homepage-introBox-mobile" class="mobile-on"> <a href="/"><img src="/images/logo-white-big.png" class="logo-small" /></a> <form class="search" action="/pmwiki/search_result.php" style="margin:10px -5px -6px -5px;"> <input type="text" name="q" class="search-box" placeholder="Search" value="" required> <input type="submit" class="submit-button" value="" /> <input type="hidden" name="search_type" value="article"> <input type="hidden" name="page_type" value="all"> <input type="hidden" name="cx" value="partner-pub-6610802604051523:amzitfn8e7v"> <input type="hidden" name="cof" value="FORID:10"> <input type="hidden" name="ie" value="ISO-8859-1"> <input name="siteurl" type="hidden" value=""> <input name="ref" type="hidden" value=""> <input name="ss" type="hidden" value=""> </form> </div> <script> // Get device type function get_device_type(){ var ua = navigator.userAgent.toLowerCase(); var device_type = ""; // This is usually "tablet", but for this case we are going to call it mobile if(/(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(ua)) device_type = "mobile"; // This is mobile else if(/(mobi|ipod|phone|blackberry|opera mini|fennec|minimo|symbian|psp|nintendo ds|archos|skyfire|puffin|blazer|bolt|gobrowser|iris|maemo|semc|teashark|uzard)/.test(ua)) device_type = "mobile"; // Otherwise desktop else device_type = "desktop"; return device_type; } var show_modal_loaded = false; //// MOBILE MENU TOGGLE FUNCTIONS //// function show_modal(type, message, confirmation_url, call_back, oauth_finalize, groupname, title, video_id) { console.log("showing modal " + type); const modalBox = document.getElementById('modal-box'); const childDivs = modalBox.querySelectorAll(':scope > div'); // Check if there are more than one child divs in the modal box, indicating a modal is already there if (childDivs.length > 1) { kill_modal(); } // Show the modal and the loading graphic modalBox.classList.add('active'); let alert = ''; if (typeof message === 'object' && message !== null) { Object.keys(message).forEach(function(key) { alert += '&' + key + '=' + encodeURIComponent(message[key]); }); } else { alert = '&message=' + encodeURIComponent(message); } // Construct the URL with parameters const url = '/design/parts/component-modalBox.php?window=' + type + alert + (confirmation_url ? '&curl=' + encodeURIComponent(confirmation_url) : "") + (oauth_finalize ? '&oauth_finalize=' + encodeURIComponent(oauth_finalize) : "") + (groupname ? '&groupname=' + groupname : "") + (video_id ? '&video_id=' + encodeURIComponent(video_id) : ""); fetch(url) .then(response => response.text()) .then(html => { modalBox.innerHTML = html; // Find and execute scripts const scripts = modalBox.querySelectorAll('script'); scripts.forEach(script => { const newScript = document.createElement('script'); newScript.type = 'text/javascript'; if (script.src) { newScript.src = script.src; // Wait for Dropzone.js to load before adding the imguploader.js if(newScript.src.includes('/design/js/dropzone.js')) { newScript.onload = function() { // Now load the imguploader.js script const img_uploader_script = document.createElement('script'); img_uploader_script.type = 'text/javascript'; img_uploader_script.src = "/design/js/imguploader.js"; img_uploader_script.onload = function (){ myAwesomeDropzone = new Dropzone("#myAwesomeDropzone", { url: "/ajax/uploadImg.php" }); } document.body.appendChild(img_uploader_script); } } } else { newScript.textContent = script.textContent; } // Remove the old script and add the new one script.parentNode.removeChild(script); modalBox.appendChild(newScript); }); if(call_back) { call_back(); } }); if(show_modal_loaded == false){ // Kill modal if blackout is clicked modalBox.addEventListener('click', function(e) { if (e.target === e.currentTarget) { kill_modal(); } }); } show_modal_loaded = true; } // Modal kill function function kill_modal() { console.log("killing modal"); const modalBox = document.getElementById('modal-box'); modalBox.classList.remove('active'); // Replace the content directly with the new loading graphic modalBox.innerHTML = '<div class="modal-loading-graphic"></div>'; } // Modal "loading" mode, without killing function pause_modal() { var modal = document.querySelector('#modal-box > div.modal'); if(!modal) modal = document.querySelector('#modal-box'); modal.classList.add('hidden'); const modalBox = document.getElementById('modal-box'); modalBox.classList.add('paused'); const loadingGraphic = document.createElement('div'); loadingGraphic.className = 'modal-loading-graphic'; modalBox.appendChild(loadingGraphic); } function unpause_modal() { const modalBox = document.getElementById('modal-box'); modalBox.classList.remove('paused'); var modal = document.querySelector('#modal-box > div.modal'); if(!modal) modal = document.querySelector('#modal-box'); modal.classList.remove('hidden'); const loadingGraphic = document.querySelector('#modal-box > div.modal-loading-graphic'); if (loadingGraphic) { modalBox.removeChild(loadingGraphic); } } // COMPONENT: LOAD GRAPHIC function show_loader() { console.log("Displaying loading graphic"); kill_modal(); const modalBox = document.getElementById('modal-box'); modalBox.classList.add('active'); const loadingGraphic = document.createElement('div'); loadingGraphic.className = 'modal-loading-graphic'; modalBox.appendChild(loadingGraphic); } // TOGGLE NOTES function togglenote(id){ var ele=object(id); var state = ele.style.display; if(state=='none') ele.style.display='inline'; if(state=='inline')ele.style.display='none'; } // Toggle more menu function toggle_more_menu(position){ var more_menu = document.getElementById(position+"_more_list"); more_menu.classList.toggle("hidden_more_list"); more_menu.classList.toggle("display"); var menu_button = document.getElementById(position+"_more_button"); menu_button.classList.toggle("is-open"); } // scroll to top of page function scroll_to_top(duration) { var start = window.pageYOffset; var start_time = performance.now(); if ('requestAnimationFrame' in window === false) { window.scrollTo(0, 0); return; } function scroll() { var current_time = performance.now(); var elapsed_time = current_time - start_time; var progress = elapsed_time / duration; var ease_in_out_quad = progress < 0.5 ? 2 * progress * progress : -1 + (4 - 2 * progress) * progress; window.scrollTo(0, start * (1 - ease_in_out_quad)); if (elapsed_time < duration) { requestAnimationFrame(scroll); } else { window.scrollTo(0, 0); } } scroll(); } // FOLDER BUTTONS (unused) - declared to prevent console errors. function toggleAllFolders() {} function togglefolder(id) {} var device_type = get_device_type(); const mobile_menu_button = document.querySelector('.mobile-menu-toggle-button'); if (mobile_menu_button) { mobile_menu_button.addEventListener('click', function(e) { e.preventDefault(); const header = document.querySelector('header#main-header-bar'); if (header.classList.contains('mobile-menu-active')) { header.classList.remove('mobile-menu-active'); } else { header.classList.add('mobile-menu-active'); } }); } // tracking height for multiple folders to insert ads var global_pHeight = 0; // MODAL - FOLDER - SPOILER BUTTONS document.body.addEventListener('click', function(e) { // WATCH / FOLLOW BUTTONS const target = e.target.closest('.watch-button'); const loggedInElement = document.getElementById('logged_in'); const loggedIn = loggedInElement ? loggedInElement.value : null; //special code for the desktop-on-mobile-toggle cookie link if (e.target.closest('#desktop-on-mobile-toggle > a')) { e.preventDefault(); var body_class = "desktop-on-mobile"; var userPrefs = document.getElementById('user-prefs'); if (userPrefs.classList.contains(body_class)) { cookies.remove(body_class); } else { cookies.create(body_class, 'true', 300, '/'); } location.reload(); } // Display toggle buttons for user preferences if (e.target.closest('.display-toggles > li')) { var toggle = e.target; if(toggle.tagName.toLowerCase() === 'li') toggle = toggle.children[0]; var body_class = ''; var pref = ''; var val = 0; // SIDEBAR AND MOBILE MENU OPTIONS if (toggle.classList.contains('wide-load')) { body_class = "wide-load"; } else if (toggle.classList.contains('sticky-header')) { body_class = "sticky-header"; } else if (toggle.classList.contains('night-vision')) { body_class = "night-vision"; } else if (toggle.classList.contains('show-spoilers')) { body_class = "show-spoilers"; } else if (toggle.classList.contains('tvtropes-editor-on')) { body_class = "tvtropes-editor-on"; } // PROFILE PAGE OPTIONS else if (toggle.classList.contains('folders-open')) { body_class = "folders-open"; } else if (toggle.classList.contains('wysiwyg-toggle')) { body_class = "wysiwyg-toggle"; } else if (toggle.classList.contains('mono-font')) { body_class = "mono-font"; } else if (toggle.classList.contains('lefthand-sidebar')) { body_class = "lefthand-sidebar"; } else if (toggle.classList.contains('highlight-links')) { body_class = "highlight-links"; } else if (toggle.classList.contains('forum-gingerbread')) { body_class = "forum-gingerbread"; } else if (toggle.classList.contains('shared-avatars')) { body_class = "shared-avatars"; pref = 'accept_share'; val = toggle.classList.contains('active') ? 0 : 1; } else if (toggle.classList.contains('new-search')) { body_class = "new-search"; pref = 'new_search'; val = toggle.classList.contains('active') ? 0 : 1; } else if (toggle.classList.contains('stop-auto-play-video')) { body_class = "stop-auto-play-video"; pref = 'stop_auto_play_video'; val = toggle.classList.contains('active') ? 0 : 1; } else if (toggle.classList.contains('notification-pm')) { body_class = 'notification-pm'; pref = 'toggle_notification_pm'; val = toggle.classList.contains('active') ? 0 : 1; } else if (toggle.classList.contains('notification-video')) { body_class = 'notification-video'; pref = 'toggle_notification_video'; val = toggle.classList.contains('active') ? 0 : 1; } else if (toggle.classList.contains('notification-query')) { body_class = 'notification-query'; pref = 'toggle_notification_query'; val = toggle.classList.contains('active') ? 0 : 1; } if (pref === 'accept_share' || pref === 'new_search' || pref === 'stop_auto_play_video' || pref === 'toggle_notification_query' || pref === 'toggle_notification_pm' || pref === 'toggle_notification_video') { if (pref === 'new_search' && document.querySelector('#new-search-toggle')) show_loader(); fetch('/ajax/toggle_user_prefs.php', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, body: 'pref=' + encodeURIComponent(pref) + '&value=' + encodeURIComponent(val) }) .then(response => response.json()) .then(json => { if (pref === 'new_search') { const newSearchToggle = document.querySelector('#new-search-toggle'); const searchInput = document.getElementById('srch-term').value; const pageType = document.getElementsByName('page_type')[0].value; if (newSearchToggle && newSearchToggle.classList.contains('active')) { kill_modal(); window.location.href = '/pmwiki/elastic_search_result.php?new_search=true&q=' + encodeURIComponent(searchInput) + '&page_type=' + encodeURIComponent(pageType); } else if (newSearchToggle) { kill_modal(); window.location.href = '/pmwiki/search_result.php?new_search=false&q=' + encodeURIComponent(searchInput); } } }) .catch(error => { console.error('Error:', error); }); document.querySelector('form.search').addEventListener('submit', function(e) { if (cookies.read('new-search') === 'true') { e.preventDefault(); this.setAttribute('action', "/pmwiki/elastic_search_result.php"); } }); } // Toggle 'active' class based on body_class var displayToggles = document.querySelectorAll('.display-toggle.' + body_class); displayToggles.forEach(item_to_toggle => { item_to_toggle.classList.toggle('active'); }); var userPrefs = document.getElementById('user-prefs'); userPrefs.classList.toggle(body_class); console.log('BODY CLASS:',body_class); if (userPrefs.classList.contains(body_class)) { cookies.create(body_class, 'true', 300, '/'); } else { cookies.remove(body_class); // Specific logic for 'show-spoilers' class if (body_class === "show-spoilers") { document.querySelectorAll('.spoiler').forEach(spoiler => { spoiler.classList.remove('off'); }); } } } if (target && loggedIn !== null) { e.preventDefault(); if (loggedIn === 'true') { target.classList.add('processing'); } // Article if (target.getAttribute('data-watch-info')) { var data = target.dataset.watchInfo.split(','); if (!data.length) return; var addOrDrop = target.classList.contains('watching') || target.parentElement.classList.contains('watching') ? 'drop' : 'add'; handleWatchItem(addOrDrop, data[0], data[1], target); // Discussion page } else if (target.getAttribute('data-watch-discussion-info')) { var data = target.dataset.watchDiscussionInfo.split(','); if (!data.length) return; var addOrDrop = target.classList.contains('watching') || target.parentElement.classList.contains('watching') ? 'drop' : 'add'; var pageType = 'Discussion'; handleWatchItem(addOrDrop, data[0], data[1], target, pageType); // Forum thread } else if (target.getAttribute('data-watch-thread-id')) { var threadId = target.getAttribute('data-watch-thread-id'); var url = target.classList.contains('watching') || target.parentElement.classList.contains('watching') ? '/pmwiki/thread_watch_drop.php?thread=' : '/pmwiki/setthreadwatch.php?d_id='; url += threadId; handleWatchThread(url, target); } } // Check for kill modal button click if (e.target.classList.contains('kill-modal-button')) { e.preventDefault(); kill_modal(); } // Check for data-click-toggle without data-click-toggle-target const targetWithoutToggleTarget = e.target.closest('*[data-click-toggle]:not([data-click-toggle-target])'); if (targetWithoutToggleTarget) { e.preventDefault(); const toggleClass = targetWithoutToggleTarget.getAttribute('data-click-toggle'); targetWithoutToggleTarget.classList.toggle(toggleClass); } // Check for data-click-toggle with data-click-toggle-target const targetWithToggleTarget = e.target.closest('*[data-click-toggle][data-click-toggle-target]:not(#signup-form-toggles a)'); if (targetWithToggleTarget) { e.preventDefault(); // Check if the target contains fetch_articles in the onclick attribute const hasFetchArticles = targetWithToggleTarget.getAttribute('onclick') && targetWithToggleTarget.getAttribute('onclick').includes('fetch_articles'); // If fetch_articles is not in the onclick attribute, stop propagation if (!hasFetchArticles) { e.stopPropagation(); } const toggleTargetId = targetWithToggleTarget.getAttribute('data-click-toggle-target'); const toggleClass = targetWithToggleTarget.getAttribute('data-click-toggle'); const isExclusive = targetWithToggleTarget.getAttribute('data-click-toggle-exclusive') === 'true'; if (isExclusive) { // Exclusive mode: toggle target and clear siblings const toggleTarget = document.getElementById(toggleTargetId); if (toggleTarget) { // Remove the toggle class from all siblings const siblings = Array.from(toggleTarget.parentNode.children); for (let sibling of siblings) { if (sibling !== toggleTarget) { sibling.classList.remove(toggleClass); } } // Add the toggle class to the target element toggleTarget.classList.add(toggleClass); } } else { // Non-exclusive mode: toggle targets normally if (toggleTargetId.indexOf(',') > -1) { const targets = toggleTargetId.split(","); targets.forEach(t => { document.querySelectorAll('#' + t).forEach(el => { el.classList.toggle(toggleClass); }); }); } else { document.querySelectorAll('#' + toggleTargetId).forEach(el => { el.classList.toggle(toggleClass); }); } } } // initiate all modals const modalTarget = e.target.closest('*[data-modal-target]'); if(modalTarget) { if (!modalTarget) { return; // Skip, if no target found with the specified attribute } // Get modal details let modal = modalTarget.getAttribute('data-modal-target'); let msg = modalTarget.getAttribute('data-modal-vars') ? modalTarget.getAttribute('data-modal-vars') : modalTarget.getAttribute('data-modal-confirmation-message'); let url = modalTarget.getAttribute('data-modal-confirmation-url'); // convert to json if possible try { var obj = JSON.parse(msg); if (obj && typeof obj === "object") { msg = obj; } } catch (e) { } // Skip modal and go straight to the link if (modal === "allow") return; // Don't allow link since we are showing a modal instead e.preventDefault(); // Add support for alert tags if (modal.substring(0, 6) === "alert-") { // Message array const msgArr = { "alert-banned": "Your permissions for this area have been suspended. Please visit <a href='/pmwiki/pmwiki.php/Administrivia/WhatToDoIfYouAreSuspended'>this page</a> for more details.", "alert-bounced": "This account has committed severe or repeated violations of our rules and is permanently denied access to many of the account features of the site. If you feel that this may be an error, please <a href=\"/pmwiki/contact.php\">contact the mods</a>.", "alert-denied": "Your account was denied by a moderator. If you believe this was done in error please <a href=\"/pmwiki/contact.php\">contact the mods</a>.", "alert-verify": "You must verify your email address before doing this. Check your email for a link.", "alert-approval": "Your account must be approved by a moderator before you can do this. If you still have this problem in a couple hours try <a href=\"/pmwiki/contact.php\">contacting the mods</a>.", "alert-age": "Your account is not old enough. Give it a little more time.", "alert-mod": "This page is only for moderators. Try something else.", "alert-db": "We are currently updating our database systems to UTF-8MB4. Please try again in 10-12 hours." }; if (modal in msgArr) { msg = msgArr[modal]; } else { msg = "Unknown error. Please <a href=\"/pmwiki/contact.php\">Contact us</a> if the problem persists."; } modal = "alert"; } // Bring up modal now show_modal(modal, msg, url); } // SPOILERS const spoilers = e.target.closest('.spoiler'); if (spoilers) { spoilers.classList.toggle('off'); } // OPEN INDIVIDUAL FOLDERS const folders = e.target.closest('.folderlabel'); if (folders && e.target.getAttribute('onclick') !== "toggleAllFolders();") { e.preventDefault(); folders.classList.toggle('is-open'); let folder = folders.nextElementSibling; if (folders.classList.contains('is-open')) { gtag('event', 'folder_click', {'device_type': device_type}); } if (folder && folders.classList.contains('is-open') && live_ads == 1 && (document.body.clientWidth && document.body.clientWidth<=768) && tvtropes_config.universal_page_type == 'Article') { if (folder.querySelectorAll('.tvtropes-ad-unit').length === 0) { global_pHeight = insert_ads_in_content(folder, globalAdInsertionCount, global_pHeight); } } } // OPEN ALL FOLDERS const allFolders = e.target.closest('div[onclick*="toggleAllFolders()"]'); if (allFolders) { let parentElement = allFolders.parentNode; // If the button is inside an H2, select the parent div of it if (parentElement.tagName === 'H2') parentElement = parentElement.parentNode; let isCurrentlyOpen = e.target.classList.contains('is-open'); // Select only folder labels that are inside the same parent div as the clicked button let foldersAndButtons = parentElement.querySelectorAll('.folderlabel, .toggle-all-folders-button'); foldersAndButtons.forEach(function(element) { if (isCurrentlyOpen) { element.classList.remove('is-open'); } else { element.classList.add('is-open'); } }); if (!isCurrentlyOpen) { gtag('event', 'all_folders_click', {'device_type': device_type}); // Also target only .folder elements within the same parent div parentElement.querySelectorAll('.folder').forEach(function(folder) { if (!folder.querySelector('.tvtropes-ad-unit') && live_ads == 1 && (document.body.clientWidth && document.body.clientWidth<=768) && tvtropes_config.universal_page_type == 'Article') { global_pHeight = insert_ads_in_content(folder, globalAdInsertionCount, global_pHeight); } }); } } }, true); // Add/remove watched article var handleWatchItem = function(addOrDrop, groupname, title, obj, pageType = '') { fetch("/ajax/watchlist.php", { method: "POST", headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8' }, body: `groupname=${encodeURIComponent(groupname)}&title=${encodeURIComponent(title)}&type=${encodeURIComponent(addOrDrop)}&json=1&pageType=${encodeURIComponent(pageType)}` }) .then(response => response.json()) .then(data => { obj.classList.remove('processing'); if (obj.classList.contains('tile-watch-button')) { obj.parentNode.classList.toggle('watching'); } else { obj.classList.toggle('watching'); } }) .catch(error => { obj.classList.remove('processing'); show_modal('alert-red', 'Whoops, something went wrong. Please try adding again.'); }); } // add/remove watched forum thread var handleWatchThread = function(url, obj) { fetch(url) .then(response => response.text()) // assuming the server responds with plain text .then(data => { obj.classList.remove('processing'); if (obj.classList.contains('tile-watch-button')) { obj.parentNode.classList.toggle('watching'); } else { obj.classList.toggle('watching'); } }) .catch(error => { obj.classList.remove('processing'); show_modal('alert-red', 'Whoops, something went wrong. Please try adding again.'); }); } </script> <script> if(is_mobile()) { document.write("<div class=\"htlad-tvtropes_m_sticky\"></div>"); } else { document.write("<div class=\"htlad-tvtropes_dt_sticky\"></div>"); } </script> <div id="tvtropes_oop_ad_slot" style="display: none;"></div> <div id="top_container_spacing"></div> <div id="main-container"> <div id="action-bar-top" class="action-bar mobile-off"> <div class="action-bar-right"> <p>Follow TV Tropes</p> <a href="https://www.facebook.com/TVTropes" class="button-fb"> <i class="fa fa-facebook"></i></a> <a href="https://www.twitter.com/TVTropes" class="button-tw"> <i class="fa fa-twitter"></i></a> </div> <nav class="actions-wrapper" itemscope itemtype="http://schema.org/SiteNavigationElement"> <ul id="top_main_list" class="page-actions"> <li class="link-edit"> <a rel = "nofollow" class = "article-edit-button"data-modal-target= "login"href = "/pmwiki/pmwiki.php/Theatre/WaitUntilDark?action=edit"> <i class="fa fa-pencil"></i> Edit Page</a></li><li class="link-related"><a href="/pmwiki/relatedsearch.php?term=Theatre/WaitUntilDark"> <i class="fa fa-share-alt"></i> Related</a></li><li class="link-history"><a href="/pmwiki/article_history.php?article=Theatre.WaitUntilDark" data-modal-target="login" rel="nofollow"> <i class="fa fa-history"></i> History</a></li><li class="link-reviews"><a href="/pmwiki/review_add.php?tt=WaitUntilDark&g=Theatre" data-modal-target="login" rel="nofollow"> <i class="fa fa-star-half-o"></i> Add Review</a></li><li class="link-discussion"><a href="/pmwiki/remarks.php?trope=Theatre.WaitUntilDark" data-modal-target="login" rel="nofollow"> <i class="fa fa-comment"></i> Discussion</a></li> </ul> <button id="top_more_button" onclick="toggle_more_menu('top');" type="button" class="nav__dropdown-toggle">More</button> <ul id="top_more_list" class="more_menu hidden_more_list"> <li class="link-todo tuck-always more_list_item"><a href="#todo" data-modal-target="login" rel="nofollow"><i class="fa fa-check-circle"></i> To Do</a></li><li class="link-pageSource tuck-always more_list_item"><a href="/pmwiki/pmwiki.php/Theatre/WaitUntilDark?action=source" target="_blank" rel="nofollow"data-modal-target= "login"><i class="fa fa-code"></i> Page Source</a></li> </ul> </nav> <div class="WikiWordModalStub"></div> <div class="ImgUploadModalStub" data-page-type="Article"></div> <div class="login-alert" style="display: none;"> You need to <a href="/pmwiki/login.php" style="color:#21A0E8">login</a> to do this. <a href="/pmwiki/login.php?tab=register_account" style="color:#21A0E8">Get Known</a> if you don't have an account </div> </div> <div id="main-content" class="page-Article "> <article id="main-entry" class="with-sidebar"> <!-- HIDDEN INPUTS FOR JS --> <input type="hidden" id="groupname-hidden" value="Theatre"/> <input type="hidden" id="title-hidden" value="WaitUntilDark"/> <input type="hidden" id="article_id" value="420423" /> <input type="hidden" id="logged_in" value="false" /> <p id="current_url" class="hidden">http://tvtropes.org/pmwiki/pmwiki.php/Theatre/WaitUntilDark</p> <meta itemprop="datePublished" content=""/> <meta itemprop="articleSection" content="" /> <meta itemprop="image" content=""> <div class="watch_rank_wrap"> <a href="#watch" class="watch-button " data-modal-target="login" >Follow<span>ing</span></a> </div> <div class="span_entry_breadcrumb"> <span class="entry-breadcrumb"><a href="/pmwiki/pmwiki.php/Main/Theatre" style="text-decoration:none;">Theatre</a> »</span> <h1 itemprop="headline" class="entry-title"> Wait Until Dark </h1> </div> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{ "@type": "ListItem", "position": 1, "name": "TV Tropes", "item": "https://tvtropes.org/" },{ "@type": "ListItem", "position": 2, "name": "Theatre", "item": "https://tvtropes.org/pmwiki/pmwiki.php/Main/Theatre" },{ "@type": "ListItem", "position": 3, "name": "Wait Until Dark", "item": "https://tvtropes.org/pmwiki/pmwiki.php/Theatre/WaitUntilDark" }] } </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Article", "name": "Wait Until Dark (Theatre)", "headline": "Wait Until Dark (Theatre)", "url": "https://tvtropes.org/pmwiki/pmwiki.php/Theatre/WaitUntilDark", "image": "https://static.tvtropes.org/pmwiki/pub/images/wait_until_dark_1967_poster.jpg", "author": { "@type": "Organization", "name": "Contributors to TV Tropes (aka Tropers)" }, "datePublished": "2013-06-18T00:00:00-07:00", "dateModified": "2024-06-09T00:21:53-07:00" } </script> <a href="#mobile-actions-toggle" id="mobile-actionbar-toggle" class="mobile-actionbar-toggle mobile-on" data-click-toggle="active" > <p class="tiny-off">Go To</p><span></span><span></span><span></span><i class="fa fa-pencil"></i></a> <nav id="mobile-actions-bar" class="mobile-actions-wrapper mobile-on"></nav> <script> //duplicate action bar to the mobile-action-bar holder if (document.getElementById("mobile-actions-bar")) { // Clone the main list var top_main_list = document.getElementById('top_main_list'); var top_main_list_cln = top_main_list.cloneNode(true); // Clone the more list var top_more_list = document.getElementById('top_more_list'); var top_more_list_cln = top_more_list.cloneNode(true); top_more_list_cln.querySelectorAll("li").forEach(function(child){ top_main_list_cln.appendChild(child); }); document.getElementById("mobile-actions-bar").appendChild(top_main_list_cln); } </script> <nav class="body-options" itemscope itemtype="http://schema.org/SiteNavigationElement"> <ul class="subpage-links"> <li> <a href="/pmwiki/pmwiki.php/Theatre/WaitUntilDark" class="subpage-link curr-subpage" title="The Theatre page"> <span class="wrapper"><span class="spi theatre"></span>Theatre</span></a> </li> <li> <a href="/pmwiki/pmwiki.php/Awesome/WaitUntilDark" class="subpage-link " title="The Awesome page"> <span class="wrapper"><span class="spi awesome"></span>Awesome</span></a> </li> <li> <a href="/pmwiki/pmwiki.php/Film/WaitUntilDark" class="subpage-link " title="The Film page"> <span class="wrapper"><span class="spi film"></span>Film</span></a> </li> <li> <a href="/pmwiki/pmwiki.php/Trivia/WaitUntilDark" class="subpage-link " title="The Trivia page"> <span class="wrapper"><span class="spi trivia"></span>Trivia</span></a> </li> <li> <a href="/pmwiki/pmwiki.php/YMMV/WaitUntilDark" class="subpage-link " title="The YMMV page"> <span class="wrapper"><span class="spi ymmv"></span>YMMV</span></a> </li> <li> <a href="/pmwiki/pmwiki.php/ReferencedBy/WaitUntilDark" class="subpage-link " title="The ReferencedBy page"> <span class="wrapper">ReferencedBy</span></a> </li> <li class="create-subpage dropdown"> <a href="javascript:void(0);" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"> <span class="wrapper">Create Subpage <i class="fa fa-plus-circle"></i></span> </a> <select onchange="this.options[this.selectedIndex].value && (window.location = this.options[this.selectedIndex].value);"> <option value="">- Create New -</option> <option value="/pmwiki/pmwiki.php/Analysis/WaitUntilDark?action=edit">Analysis</option> <option value="/pmwiki/pmwiki.php/Archive/WaitUntilDark?action=edit">Archive</option> <option value="/pmwiki/pmwiki.php/Characters/WaitUntilDark?action=edit">Characters</option> <option value="/pmwiki/pmwiki.php/DerivativeWorks/WaitUntilDark?action=edit">DerivativeWork…</option> <option value="/pmwiki/pmwiki.php/FanWorks/WaitUntilDark?action=edit">FanWorks</option> <option value="/pmwiki/pmwiki.php/FanficRecs/WaitUntilDark?action=edit">FanficRecs</option> <option value="/pmwiki/pmwiki.php/Fridge/WaitUntilDark?action=edit">Fridge</option> <option value="/pmwiki/pmwiki.php/Funny/WaitUntilDark?action=edit">Funny</option> <option value="/pmwiki/pmwiki.php/Haiku/WaitUntilDark?action=edit">Haiku</option> <option value="/pmwiki/pmwiki.php/Headscratchers/WaitUntilDark?action=edit">Headscratchers</option> <option value="/pmwiki/pmwiki.php/Heartwarming/WaitUntilDark?action=edit">Heartwarming</option> <option value="/pmwiki/pmwiki.php/ImageLinks/WaitUntilDark?action=edit">ImageLinks</option> <option value="/pmwiki/pmwiki.php/ImageSource/WaitUntilDark?action=edit">ImageSource</option> <option value="/pmwiki/pmwiki.php/Laconic/WaitUntilDark?action=edit">Laconic</option> <option value="/pmwiki/pmwiki.php/MediaNotes/WaitUntilDark?action=edit">MediaNotes</option> <option value="/pmwiki/pmwiki.php/Newsletter/WaitUntilDark?action=edit">Newsletter</option> <option value="/pmwiki/pmwiki.php/NightmareFuel/WaitUntilDark?action=edit">NightmareFuel</option> <option value="/pmwiki/pmwiki.php/PlayingWith/WaitUntilDark?action=edit">PlayingWith</option> <option value="/pmwiki/pmwiki.php/QuoteSource/WaitUntilDark?action=edit">QuoteSource</option> <option value="/pmwiki/pmwiki.php/Quotes/WaitUntilDark?action=edit">Quotes</option> <option value="/pmwiki/pmwiki.php/Recap/WaitUntilDark?action=edit">Recap</option> <option value="/pmwiki/pmwiki.php/Shocking/WaitUntilDark?action=edit">Shocking</option> <option value="/pmwiki/pmwiki.php/TearJerker/WaitUntilDark?action=edit">TearJerker</option> <option value="/pmwiki/pmwiki.php/Timeline/WaitUntilDark?action=edit">Timeline</option> <option value="/pmwiki/pmwiki.php/WMG/WaitUntilDark?action=edit">WMG</option> </select> </li> </ul> </nav> <div id="main-article" class="article-content retro-folders"> <p><!-- Administrivia/ZeroContextExample entries are not allowed on wiki pages. All such entries have been commented out. Add context to the entries before uncommenting them.--></p><p><div class="quoteright" style="width:310px;" ><div class="lazy_load_img_box" style="padding-top:150%"><img src='https://static.tvtropes.org/pmwiki/pub/images/wait_until_dark_1967_poster.jpg' class='embeddedimage' border='0' alt='Wait Until Dark (Theatre)' width=350 height=525></div></div></p><p><em>Wait Until Dark</em> is a mystery/thriller play by Frederick Knott.</p><p>The heroine is the recently-blinded Susy Hendrix, a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/BigApplesauce' title='/pmwiki/pmwiki.php/Main/BigApplesauce' data-format='W1tCaWdBcHBsZXNhdWNlIEdyZWVud2ljaCBWaWxsYWdlXV0='>Greenwich Village</a> housewife who becomes the target of three men searching for the heroin hidden inside a porcelain doll, which her husband Sam brought over from Canada — unaware of its contents — as a favor to a woman who since has been murdered. The trio, led by a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/Sociopath' title='/pmwiki/pmwiki.php/Main/Sociopath' data-format='e3tzb2Npb3BhdGh9fQ=='>sociopath</a> calling himself Roat, try to convince Susy that Sam has been implicated in the crime and the only way to protect him is to surrender the doll. More murder and mayhem ensue when she refuses.</p><p>Originally produced on Broadway in 1966, with a cast that included <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/LeeRemick' title='/pmwiki/pmwiki.php/Creator/LeeRemick' data-format='Q3JlYXRvci9MZWVSZW1pY2s='>Lee Remick</a> as Susy and <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/RobertDuvall' title='/pmwiki/pmwiki.php/Creator/RobertDuvall' data-format='Q3JlYXRvci9Sb2JlcnREdXZhbGw='>Robert Duvall</a> as Roat. The play was revived on Broadway in 1998, with a cast including <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/MarisaTomei' title='/pmwiki/pmwiki.php/Creator/MarisaTomei' data-format='Q3JlYXRvci9NYXJpc2FUb21laQ=='>Marisa Tomei</a> as Susy, <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/QuentinTarantino' title='/pmwiki/pmwiki.php/Creator/QuentinTarantino' data-format='Q3JlYXRvci9RdWVudGluVGFyYW50aW5v'>Quentin Tarantino</a> as Roat, and <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/StephenLang' title='/pmwiki/pmwiki.php/Creator/StephenLang' data-format='Q3JlYXRvci9TdGVwaGVuTGFuZw=='>Stephen Lang</a> as Talman. Another revival, staged in October 2013 at the Geffen Playhouse in Los Angeles, moved the setting back in time to 1944 – lending it a distinctly <a class='twikilink' href='/pmwiki/pmwiki.php/Main/FilmNoir' title='/pmwiki/pmwiki.php/Main/FilmNoir' data-format='RmlsbU5vaXI='>Film Noir</a> flavor – among other changes.</p><p>A <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TheFilmOfThePlay' title='/pmwiki/pmwiki.php/Main/TheFilmOfThePlay' data-format='W1tUaGVGaWxtT2ZUaGVQbGF5IGZpbG0gYWRhcHRhdGlvbl1d'>film adaptation</a> was made in 1967, produced by <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/MelFerrer' title='/pmwiki/pmwiki.php/Creator/MelFerrer' data-format='Q3JlYXRvci9NZWxGZXJyZXI='>Mel Ferrer</a>, directed by <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/TerenceYoung' title='/pmwiki/pmwiki.php/Creator/TerenceYoung' data-format='Q3JlYXRvci9UZXJlbmNlWW91bmc='>Terence Young</a>, and starring <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/AudreyHepburn' title='/pmwiki/pmwiki.php/Creator/AudreyHepburn' data-format='Q3JlYXRvci9BdWRyZXlIZXBidXJu'>Audrey Hepburn</a> as Susy, <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/AlanArkin' title='/pmwiki/pmwiki.php/Creator/AlanArkin' data-format='Q3JlYXRvci9BbGFuQXJraW4='>Alan Arkin</a> as Roat, <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/RichardCrenna' title='/pmwiki/pmwiki.php/Creator/RichardCrenna' data-format='Q3JlYXRvci9SaWNoYXJkQ3Jlbm5h'>Richard Crenna</a> as Talman, and <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/EfremZimbalistJr' title='/pmwiki/pmwiki.php/Creator/EfremZimbalistJr' data-format='Q3JlYXRvci9FZnJlbVppbWJhbGlzdEpy'>Efrem Zimbalist Jr.</a> as Sam. In 1982, <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/HBO' title='/pmwiki/pmwiki.php/Creator/HBO' data-format='Q3JlYXRvci97e0hCT319'>HBO</a> aired a videotaped performance of the stage play, featuring Katharine Ross as Susy and <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/StacyKeach' title='/pmwiki/pmwiki.php/Creator/StacyKeach' data-format='Q3JlYXRvci9TdGFjeUtlYWNo'>Stacy Keach</a> as Roat. Another film adaptation, titled <em>Penthouse North</em> and starring <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/MichelleMonaghan' title='/pmwiki/pmwiki.php/Creator/MichelleMonaghan' data-format='Q3JlYXRvci9NaWNoZWxsZU1vbmFnaGFu'>Michelle Monaghan</a> and <a class='twikilink' href='/pmwiki/pmwiki.php/Creator/MichaelKeaton' title='/pmwiki/pmwiki.php/Creator/MichaelKeaton' data-format='Q3JlYXRvci9NaWNoYWVsS2VhdG9u'>Michael Keaton</a>, was released in 2014.</p><p><hr data-format='——' /><h2>This work provides examples of:</h2></p><p><ul ><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ActionSurvivor' title='/pmwiki/pmwiki.php/Main/ActionSurvivor' data-format='QWN0aW9uU3Vydml2b3I='>Action Survivor</a>: Susy at the end. She's a nice, unassuming lady who gets dragged into a situation with her life at risk by three conmen against her will. <span class="spoiler" title="you can set spoilers visible by default on your profile" >She manages to beat her opponent, killing him before he can kill her, but it's a close, close thing.</span></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/AdaptationNameChange' title='/pmwiki/pmwiki.php/Main/AdaptationNameChange' data-format='QWRhcHRhdGlvbk5hbWVDaGFuZ2U='>Adaptation Name Change</a>: A subtle example in the 2013 rewrite: Susy is referred to as Susan.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/AdaptationalBackstoryChange' title='/pmwiki/pmwiki.php/Main/AdaptationalBackstoryChange' data-format='QWRhcHRhdGlvbmFsQmFja3N0b3J5Q2hhbmdl'>Adaptational Backstory Change</a>: In the 2013 rewrite, the characters' backstories are made to better fit the WWII era setting. For example, Susy and Sam met in a hospital when she was recovering from the accident that blinded her and he was recovering from wartime PTSD. Also, Roat is made a draft-dodger, mutilating his own foot to avoid service.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/AdaptationalLateAppearance' title='/pmwiki/pmwiki.php/Main/AdaptationalLateAppearance' data-format='QWRhcHRhdGlvbmFsTGF0ZUFwcGVhcmFuY2U='>Adaptational Late Appearance</a>: In the Hatcher rewrite, Mike does not appear in the first scene. He makes his initial appearance when the con begins, making the revelation of his involvement in the criminal plot a twist rather than a detail the audience knows from the beginning.<!--* AffablyEvil: Talman and Carlino.--></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/AloneWithThePsycho' title='/pmwiki/pmwiki.php/Main/AloneWithThePsycho' data-format='QWxvbmVXaXRoVGhlUHN5Y2hv'>Alone with the Psycho</a>: The climax, in which Susy is left alone in her apartment with the murderous Roat.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/AnkleDrag' title='/pmwiki/pmwiki.php/Main/AnkleDrag' data-format='QW5rbGVEcmFn'>Ankle Drag</a>: <span class="spoiler" title="you can set spoilers visible by default on your profile" >Happens when the psychotic Roat leaps and grabs Susy's ankle as she tries to signal for help through the window</span>.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/AntiVillain' title='/pmwiki/pmwiki.php/Main/AntiVillain' data-format='QW50aVZpbGxhaW4='>Anti-Villain</a>: Talman. He's just trying to pay off his debt to a loan shark, and does everything he can to avoid actually hurting Susy. He ends up <span class="spoiler" title="you can set spoilers visible by default on your profile" >leaving of his own accord after he decides Susy is a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/WorthyOpponent' title='/pmwiki/pmwiki.php/Main/WorthyOpponent' data-format='V29ydGh5T3Bwb25lbnQ='>Worthy Opponent</a>, and promises he and Carlino will never bother her again, assuring her that Roat is dead, having previously agreed that Carlino would kill him. Unfortunately, he's wrong — Roat killed Carlino before Carlino got the chance, and promptly kills Mike, too.</span></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/AssholeVictim' title='/pmwiki/pmwiki.php/Main/AssholeVictim' data-format='QXNzaG9sZVZpY3RpbQ=='>Asshole Victim</a>: Lisa seems to make betraying her partners-in-crime a regular thing. She dumped Mike and Carlino when their last mark caught wise to their blackmailing scheme, letting them take the rap while she walked away. She tries to do the same thing to Roat, but he isn't as forgiving...<!--* AxCrazy: Roat.--></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/BigNo' title='/pmwiki/pmwiki.php/Main/BigNo' data-format='QmlnTm8='>Big "NO!"</a>: Susy belts out two in the movie: once when she learns the truth about Mike and the second time when <span class="spoiler" title="you can set spoilers visible by default on your profile" > Roat shoves a burning newspaper into her face.</span><!--* BrattyHalfPint: Gloria. She gets better.--></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/BuildingOfAdventure' title='/pmwiki/pmwiki.php/Main/BuildingOfAdventure' data-format='QnVpbGRpbmdPZkFkdmVudHVyZQ=='>Building of Adventure</a>: The action is almost entirely set in one apartment.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/CanonForeigner' title='/pmwiki/pmwiki.php/Main/CanonForeigner' data-format='Q2Fub25Gb3JlaWduZXI='>Canon Foreigner</a>: The character Shatner was added for the film, presumably to open it up a bit (his one scene takes place outside) while also establishing that all of Susy's adult neighbors are going to be out for the weekend.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ChekhovsGun' title='/pmwiki/pmwiki.php/Main/ChekhovsGun' data-format='Q2hla2hvdnNHdW4='>Chekhov's Gun</a>: In the film, Gloria makes sure to mention that a knife is among the objects that she flung to the floor during a temper tantrum. That's the knife that Susy eventually uses on Roat.<!--** The icebox. Not to mention "Geraldine" the switchblade.--></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TheCon' title='/pmwiki/pmwiki.php/Main/TheCon' data-format='VGhlQ29u'>The Con</a>: Talman makes himself out to be a friend of Susy's husband. Carlino pretends that he's a cop investigating the murder of the lady who gave Mr. Hendrix the doll. Then Roat pretends to be two different people in order to trick Susy into thinking that her husband has been implicated in the murder, and that she has to find the doll to clear him.<!--* ConMan: Roat, Talman, and Carlino. Lisa was one too before Roat killed her.--></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ConvenientlyEmptyBuilding' title='/pmwiki/pmwiki.php/Main/ConvenientlyEmptyBuilding' data-format='Q29udmVuaWVudGx5RW1wdHlCdWlsZGluZw=='>Conveniently Empty Building</a>:<ul ><li> The film takes place in what appears to be the most desolate apartment building in New York City. Lampshaded early on when it was explained that of the six tenants living in the building, only Susy and Gloria were actually home - Shatner left for Vermont, Gloria's mother was uptown "for a weekend of fun and games" and her father had left as well, and Sam was off to work.</li><li> Averted in the 2013 rewrite, where Gloria's mom is stated to be upstairs with a lover. However, since she's established as a chronic "dipso," she may as well not be there at all.</li></ul></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/CutPhoneLines' title='/pmwiki/pmwiki.php/Main/CutPhoneLines' data-format='Q3V0UGhvbmVMaW5lcw=='>Cut Phone Lines</a>: The baddies cut the phone line so that Susy could not call the police.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/DarknessEqualsDeath' title='/pmwiki/pmwiki.php/Main/DarknessEqualsDeath' data-format='RGFya25lc3NFcXVhbHNEZWF0aA=='>Darkness Equals Death</a>: Beautifully subverted. Susy knocks out all the lights to give herself the advantage over her attacker. Too bad she forgot one. <span class="spoiler" title="you can set spoilers visible by default on your profile" > You probably would, too. In the refrigerator. She thankfully does manage to unplug it at the last second, and darkness equals her attacker's death instead of her own.</span></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/DisabilitySuperpower' title='/pmwiki/pmwiki.php/Main/DisabilitySuperpower' data-format='RGlzYWJpbGl0eVN1cGVycG93ZXI='>Disability Superpower</a>:<ul ><li> <span class="spoiler" title="you can set spoilers visible by default on your profile" > Lampshaded, really. Roat wears two elaborate disguises to pretend he is two different people, for no apparent reason, other than that's what he does when he pulls the con on other people, or maybe just for the benefit of the girl who also lives in the building. Since Susy can't see the disguises, there's really no point in wearing them, and in fact, she recognizes that he is the same person, because she isn't distracted by them.</span></li><li> Susy's ears are also sharp enough for her to pick up that Carlino is "dusting" her apartment for no particular reason (he's really wiping prints), and to notice that her visitors keep fiddling with the blinds even though it's nighttime (they're signaling to each other).</li></ul></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/EarlyBirdCameo' title='/pmwiki/pmwiki.php/Main/EarlyBirdCameo' data-format='RWFybHlCaXJkQ2FtZW8='>Early-Bird Cameo</a>: Roat in the film, as he's spotted by (and subsequently intercepts) Lisa after she lands at Kennedy Airport.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/EvenEvilHasStandards' title='/pmwiki/pmwiki.php/Main/EvenEvilHasStandards' data-format='RXZlbkV2aWxIYXNTdGFuZGFyZHM='>Even Evil Has Standards</a>: It's hard to call Talman and Carlino "evil", but they're still criminals – and they're both disgusted by Mr. Roat.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/EvilCripple' title='/pmwiki/pmwiki.php/Main/EvilCripple' data-format='RXZpbENyaXBwbGU='>Evil Cripple</a>: Roat, in the 2013 version, where he damaged his own foot to avoid being drafted into the military. The dragging sound of his club foot becomes Susy's way of identifying him rather than via squeaky shoes.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/FauxAffablyEvil' title='/pmwiki/pmwiki.php/Main/FauxAffablyEvil' data-format='RmF1eEFmZmFibHlFdmls'>Faux Affably Evil</a>: Initially, Harry Roat feigns pleasantries with his marks and seems generous with paying his lackeys well for a few hours of work.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/FemmeFatale' title='/pmwiki/pmwiki.php/Main/FemmeFatale' data-format='RmVtbWVGYXRhbGU='>Femme Fatale</a>: Lisa, who in her previous work with Mike and Carlino seduced then blackmailed wealthy men. Roat refers to this "type" as her con artist specialty directly by name in the 2013 version.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/Foreshadowing' title='/pmwiki/pmwiki.php/Main/Foreshadowing' data-format='e3tGb3Jlc2hhZG93aW5nfX0='>Foreshadowing</a>: There are many: the icebox, which plays an unusually important role for an icebox, and is mentioned in several different contexts, early in the movie, and Susy's lines "I don't want Gloria today, I don't need her"; "What if I get [killed] as a poor, defenseless blind lady whose husband is off in Asbury Park?" "Do I have to be the world's champion blind lady? [her husband says "Yes!"] then I will"; and "I wish I could do...important things," followed by a list of things she wishes she could do, that are not very important compared to <span class="spoiler" title="you can set spoilers visible by default on your profile" > saving her own life, and ridding the world of an evil criminal at the same time</span>.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ForgottenFingerprint' title='/pmwiki/pmwiki.php/Main/ForgottenFingerprint' data-format='Rm9yZ290dGVuRmluZ2VycHJpbnQ='>Forgotten Fingerprint</a>: Roat chides Talman and Carlino for not wearing gloves thereby getting their fingerprints all over the apartment. He uses this as blackmail.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/FrameUp' title='/pmwiki/pmwiki.php/Main/FrameUp' data-format='RnJhbWVVcA=='>Frame-Up</a>: Roat lures Talman and Carlino into the room where Lisa (their former partner in crime) is and has them get their fingerprints everywhere, then threatens to have them take the fall for the crime unless they help him.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/FreakOut' title='/pmwiki/pmwiki.php/Main/FreakOut' data-format='RnJlYWtPdXQ='>Freak Out</a>: Susy has a brief one after <span class="spoiler" title="you can set spoilers visible by default on your profile" > she discovers that her phone line got cut.</span> She breaks a lamp in frustration, <span class="spoiler" title="you can set spoilers visible by default on your profile" > which gives her the idea to do the same to all the lights</span>.<!--* GenreBlindness: Ironically, not Susy. - ZCE--></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TheGhost' title='/pmwiki/pmwiki.php/Main/TheGhost' data-format='VGhlR2hvc3Q='>The Ghost</a>: Lisa in the play. The closest we ever get is an offstage but frequently discussed dead body, hidden in Susy and Sam's closet. Averted in the film, where she appears onscreen, and in the 1998 Broadway revival and the 2013 rewrite, where the body was/is shown onstage.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/HandicappedBadass' title='/pmwiki/pmwiki.php/Main/HandicappedBadass' data-format='SGFuZGljYXBwZWRCYWRhc3M='>Handicapped Badass</a>: Susy, a blind woman who <span class="spoiler" title="you can set spoilers visible by default on your profile" >managed to take advantage of the fact that she is <em>used</em> to not being able to see, while Roat is not, and smash out all the lights and cover the floor in gasoline, guaranteeing he can't see a thing. The only thing she didn't think of was the light in the refrigerator, and while it comes close, she still manages to kill Roat in the end.</span></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/HastilyHiddenMacGuffin' title='/pmwiki/pmwiki.php/Main/HastilyHiddenMacGuffin' data-format='SGFzdGlseUhpZGRlbk1hY0d1ZmZpbg=='>Hastily Hidden MacGuffin</a>: The <a class='twikilink' href='/pmwiki/pmwiki.php/Main/MacGuffin' title='/pmwiki/pmwiki.php/Main/MacGuffin' data-format='TWFjR3VmZmlu'>MacGuffin</a> is a heroin-stuffed doll which a young woman tries to smuggle on a plane from Montreal to New York. On arrival she notices a criminal waiting for her at the arrival zone whom she hasn't expected. She senses trouble and quickly hands the doll to an unwitting stranger she met on the plane who then carries it home with good intent. The plot revolves around the criminal and his two partners trying to get the doll back from this man's apartment.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/HeelFaceDoorSlam' title='/pmwiki/pmwiki.php/Main/HeelFaceDoorSlam' data-format='SGVlbEZhY2VEb29yU2xhbQ=='>Heel–Face Door-Slam</a>: <span class="spoiler" title="you can set spoilers visible by default on your profile" >Talman. He stops the con on Susy, promising to leave her and Sam alone and that she's safe... and is promptly killed.</span><!--* HellBentForLeather: No matter the version, Roat is generally costumed in a leather jacket.--></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/HeroicBSOD' title='/pmwiki/pmwiki.php/Main/HeroicBSOD' data-format='SGVyb2ljQlNPRA=='>Heroic BSoD</a>: Susy has one when she learns that Talman played her. She has another one when noticing the <a class='twikilink' href='/pmwiki/pmwiki.php/Main/CutPhoneLines' title='/pmwiki/pmwiki.php/Main/CutPhoneLines' data-format='Q3V0UGhvbmVMaW5lcw=='>Cut Phone Lines</a>.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/HoistByHisOwnPetard' title='/pmwiki/pmwiki.php/Main/HoistByHisOwnPetard' data-format='SG9pc3RCeUhpc093blBldGFyZA=='>Hoist by His Own Petard</a>: <span class="spoiler" title="you can set spoilers visible by default on your profile" > Roat charges at Susy with the knife raised - but only manages to catch her by the ankle because he trips over Mike's body.</span></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TheHunterBecomesTheHunted' title='/pmwiki/pmwiki.php/Main/TheHunterBecomesTheHunted' data-format='VGhlSHVudGVyQmVjb21lc1RoZUh1bnRlZA=='>The Hunter Becomes the Hunted</a>: This happens around the time that Susy manages to splash Roat with the gasoline and then grabs matches.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ICallItVera' title='/pmwiki/pmwiki.php/Main/ICallItVera' data-format='SUNhbGxJdFZlcmE='>I Call It "Vera"</a>: Roat named his switchblade "Geraldine."</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/IHaveYouNowMyPretty' title='/pmwiki/pmwiki.php/Main/IHaveYouNowMyPretty' data-format='SUhhdmVZb3VOb3dNeVByZXR0eQ=='>I Have You Now, My Pretty</a>: Roat towards Susy in the film. He strokes her face during his interrogation of her and it is strongly implied he plans to do more than just kill her when he insists they go into the bedroom.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ILied' title='/pmwiki/pmwiki.php/Main/ILied' data-format='SUxpZWQ='>I Lied</a>: Roat promises not to hurt Susy if she gives up the doll. After she does, he marches her into the bedroom for murder <a class='twikilink' href='/pmwiki/pmwiki.php/Main/RapeIsASpecialKindOfEvil' title='/pmwiki/pmwiki.php/Main/RapeIsASpecialKindOfEvil' data-format='W1tSYXBlSXNBU3BlY2lhbEtpbmRPZkV2aWwgb3Igd29yc2VdXQ=='>or worse</a>. She says he promised not to hurt her, and he parries with "Did I? I must have had my fingers crossed."</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/InLoveWithTheMark' title='/pmwiki/pmwiki.php/Main/InLoveWithTheMark' data-format='SW5Mb3ZlV2l0aFRoZU1hcms='>In Love with the Mark</a>: Subtle. When Susy touched Mike's face to "read" him there was something in the way that he was looking at her that seemed like he had fallen for her. He later tells Carlino that she is "something", and it's very clear that he really likes her, romantically or not. Leads to a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/HeelFaceDoorSlam' title='/pmwiki/pmwiki.php/Main/HeelFaceDoorSlam' data-format='SGVlbEZhY2VEb29yU2xhbQ=='>Heel–Face Door-Slam</a> for Mike.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/InTheBack' title='/pmwiki/pmwiki.php/Main/InTheBack' data-format='SW5UaGVCYWNr'>In the Back</a>: <span class="spoiler" title="you can set spoilers visible by default on your profile" > Mike, who Roat stabs from behind</span>.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/InspectorJavert' title='/pmwiki/pmwiki.php/Main/InspectorJavert' data-format='SW5zcGVjdG9ySmF2ZXJ0'>Inspector Javert</a>: Carlino poses as one, investigating a murder he supposedly suspects Sam of, to scare Susy.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/IronicEcho' title='/pmwiki/pmwiki.php/Main/IronicEcho' data-format='SXJvbmljRWNobw=='>Ironic Echo</a>: Susy asks both Sam and Roat if they're "looking at me," the context being quite different in those two scenes.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/JumpScare' title='/pmwiki/pmwiki.php/Main/JumpScare' data-format='SnVtcFNjYXJl'>Jump Scare</a>: <span class="spoiler" title="you can set spoilers visible by default on your profile" > <a class='urllink' href='http://youtu.be/8JARcRxJzsQ'>Roat comes out of nowhere<img src="https://static.tvtropes.org/pmwiki/pub/external_link.gif" height="12" width="12" style="border:none;" /></a> to <a class='twikilink' href='/pmwiki/pmwiki.php/Main/AnkleDrag' title='/pmwiki/pmwiki.php/Main/AnkleDrag' data-format='W1tBbmtsZURyYWcgZ3JhYiBTdXN5IGJ5IHRoZSBhbmtsZV1d'>grab Susy by the ankle</a>.</span></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/KilledMidSentence' title='/pmwiki/pmwiki.php/Main/KilledMidSentence' data-format='S2lsbGVkTWlkU2VudGVuY2U='>Killed Mid-Sentence</a>: <span class="spoiler" title="you can set spoilers visible by default on your profile" > Talman, by Roat, just as he's bidding a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/WorthyOpponent' title='/pmwiki/pmwiki.php/Main/WorthyOpponent' data-format='V29ydGh5T3Bwb25lbnQ='>Worthy Opponent</a> goodbye to Susy.</span></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/LetsGetDangerous' title='/pmwiki/pmwiki.php/Main/LetsGetDangerous' data-format='TGV0c0dldERhbmdlcm91cw=='>Let's Get Dangerous!</a>: Susy <span class="spoiler" title="you can set spoilers visible by default on your profile" >turning out the lights to turn the tables on Roat.</span><!--* LittleMissSnarker: Gloria, who's quite sarcastic.--></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/MacGuffin' title='/pmwiki/pmwiki.php/Main/MacGuffin' data-format='TWFjR3VmZmlu'>MacGuffin</a>: The doll, which is stuffed full of heroin.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/MrExposition' title='/pmwiki/pmwiki.php/Main/MrExposition' data-format='TXJFeHBvc2l0aW9u'>Mr. Exposition</a>: Susy's neighbor Shatner serves this in an unusually indirect way. He says hi to Susy (while packing up for a ski vacation) and as they complain about their landlord, mentions that the only tenants in the building are the two of them, Sam, Gloria and her mother.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/NiceMeanAndInBetween' title='/pmwiki/pmwiki.php/Main/NiceMeanAndInBetween' data-format='TmljZU1lYW5BbmRJbkJldHdlZW4='>Nice Mean And In Between</a>: Talman (a smooth guy who develops sympathy for Susy) is nice, Roat (a psychopathic killer) is mean, Carlino (who gets along with Talman, but bullies around Susy- albeit only as part of the con and because he's being blackmailed-) is in between.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/NoNameGiven' title='/pmwiki/pmwiki.php/Main/NoNameGiven' data-format='Tm9OYW1lR2l2ZW4='>No Name Given</a>: Roat, Mike Talman, and Carlino are all made-up aliases assigned by Roat. The script simply calls them by those names because they have to call them <em>something</em>.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/NotQuiteDead' title='/pmwiki/pmwiki.php/Main/NotQuiteDead' data-format='Tm90UXVpdGVEZWFk'>Not Quite Dead</a>: <span class="spoiler" title="you can set spoilers visible by default on your profile" >Roat comes jumping at Susy after being stabbed down by her in the previous scene</span>.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/OhCrap' title='/pmwiki/pmwiki.php/Main/OhCrap' data-format='T2hDcmFw'>Oh, Crap!</a>: <span class="spoiler" title="you can set spoilers visible by default on your profile" >After Susy's able to kill off most of the light sources in her apartment, Roat figures out that the refrigerator <em>has a working light</em>...</span></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/OnlyInItForTheMoney' title='/pmwiki/pmwiki.php/Main/OnlyInItForTheMoney' data-format='T25seUluSXRGb3JUaGVNb25leQ=='>Only in It for the Money</a>: Mike and Carlino don't have anything against Susy and honestly seem to want to avoid hurting her—they're just in it for a quick buck. Averted with Roat, who, as Susy lampshades, <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ForTheEvulz' title='/pmwiki/pmwiki.php/Main/ForTheEvulz' data-format='W1tGb3JUaGVFdnVseiBqdXN0ICJ3YW50cyB0byBkbyBldmlsIHRoaW5ncy4iXV0='>just "wants to do evil things."</a></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ParentalSubstitute' title='/pmwiki/pmwiki.php/Main/ParentalSubstitute' data-format='UGFyZW50YWxTdWJzdGl0dXRl'>Parental Substitute</a>: Sam for Gloria. Eventually, Susy is, too.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/PeekABooCorpse' title='/pmwiki/pmwiki.php/Main/PeekABooCorpse' data-format='UGVla0FCb29Db3Jwc2U='>Peek-a-Boo Corpse</a>: When they are first searching the apartment, Roat tells Talman to check the closet. He opens it and is startled to find the corpse of the sexy woman who was carrying the doll, in a plastic bag hanging from a hook.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/PervertedSniffing' title='/pmwiki/pmwiki.php/Main/PervertedSniffing' data-format='UGVydmVydGVkU25pZmZpbmc='>Perverted Sniffing</a>: In the film, Roat grabs some laundry from the dryer to clean his sunglasses with while monologuing. When he realizes he's grabbed some of Susy's lingerie, he brings it to his nose for a whiff. From the smug look on his face, he doesn't seem interested in what detergent she uses...</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/PlotTailoredToTheParty' title='/pmwiki/pmwiki.php/Main/PlotTailoredToTheParty' data-format='UGxvdFRhaWxvcmVkVG9UaGVQYXJ0eQ=='>Plot Tailored to the Party</a>: The climax of the film involves <span class="spoiler" title="you can set spoilers visible by default on your profile" >Susy breaking all the lamps in the apartment so that the thugs can't find her. Her plan is thwarted when Roat finds the refrigerator</span>.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ThePowerOfTrust' title='/pmwiki/pmwiki.php/Main/ThePowerOfTrust' data-format='VGhlUG93ZXJPZlRydXN0'>The Power of Trust</a>: A lot of the con rides on Susy <em>not</em> trusting Sam. While her faith does waver, she does trust him. She also trusts Gloria, and Mike (and is devastated when she realizes Mike is in on it, too). Mike and Carlino seem to trust each other, but they don't trust Roat at <em>all</em>. <span class="spoiler" title="you can set spoilers visible by default on your profile" >With good reason, seeing as how he kills them both.</span> Roat doesn't appear to trust <em>them</em> very much either.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/PrettyInMink' title='/pmwiki/pmwiki.php/Main/PrettyInMink' data-format='UHJldHR5SW5NaW5r'>Pretty in Mink</a>: When Lisa takes the doll on the plane she is wearing a lynx coat, showing the drug dealing paid well (though also ended up getting her killed).</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ProtectThisHouse' title='/pmwiki/pmwiki.php/Main/ProtectThisHouse' data-format='UHJvdGVjdFRoaXNIb3VzZQ=='>Protect This House</a>: A group of burglars resort to increasingly desperate means to get a poor blind housewife to give up a heroin-laden doll mistakenly delivered to her house.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/PunchClockVillain' title='/pmwiki/pmwiki.php/Main/PunchClockVillain' data-format='UHVuY2hDbG9ja1ZpbGxhaW4='>Punch-Clock Villain</a>: Talman and Carlino. They never show any genuine malice toward Susy, and only agree to do the job on the condition that nobody will get hurt. When things turn sour, <span class="spoiler" title="you can set spoilers visible by default on your profile" > they come up with a plan to get rid of Roat and leave Susy alone. Sadly, it fails.</span></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/RedHerring' title='/pmwiki/pmwiki.php/Main/RedHerring' data-format='UmVkSGVycmluZw=='>Red Herring</a>: The safe. For all it's brought up, it has very little importance later.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/RescueRomance' title='/pmwiki/pmwiki.php/Main/RescueRomance' data-format='UmVzY3VlUm9tYW5jZQ=='>Rescue Romance</a>: How Susy and Sam first met. She was trying to cross traffic one day and was almost hit by a car. Sam rescued Susy as the cars began to "pile up" around her.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/RoadsideWave' title='/pmwiki/pmwiki.php/Main/RoadsideWave' data-format='Um9hZHNpZGVXYXZl'>Roadside Wave</a>: Sam gets wet when the taxi cab outside the apartment gives him a puddle shower.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ScareChord' title='/pmwiki/pmwiki.php/Main/ScareChord' data-format='U2NhcmVDaG9yZA=='>Scare Chord</a>: Oh boy!<ul ><li> The film's music score, incidentally, was written by <a class='twikilink' href='/pmwiki/pmwiki.php/Music/HenryMancini' title='/pmwiki/pmwiki.php/Music/HenryMancini' data-format='TXVzaWMvSGVucnlNYW5jaW5p'>Henry Mancini</a>.</li></ul></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ScrewThisImOuttaHere' title='/pmwiki/pmwiki.php/Main/ScrewThisImOuttaHere' data-format='U2NyZXdUaGlzSW1PdXR0YUhlcmU='>Screw This, I'm Outta Here!</a>: Attempted by <span class="spoiler" title="you can set spoilers visible by default on your profile" > Talman and Carlino, when they try to get rid of Roat and bail on the whole con. It backfires, and Roat kills them both.</span></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/SettingUpdate' title='/pmwiki/pmwiki.php/Main/SettingUpdate' data-format='U2V0dGluZ1VwZGF0ZQ=='>Setting Update</a>: Inverted with the 2013 revival, which moved the time period <em>back</em> a couple decades to 1944. Among the several changes to fit the new setting, the doll is now stuffed with diamonds rather than heroin.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ASimplePlan' title='/pmwiki/pmwiki.php/Main/ASimplePlan' data-format='QVNpbXBsZVBsYW4='>A Simple Plan</a>: The con men try to scam Susy into revealing where the doll went, by posing as cops and trying to hint that Susy's husband was having an affair with a murdered woman. For a blind woman, Susy quickly senses things are amiss - she can tell one "cop" is wiping away evidence - and it drives the sociopathic Roat into an even simpler plan...</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/SinisterShades' title='/pmwiki/pmwiki.php/Main/SinisterShades' data-format='U2luaXN0ZXJTaGFkZXM='>Sinister Shades</a>: Donned by Roat for much of the film.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/SkeletonKeycard' title='/pmwiki/pmwiki.php/Main/SkeletonKeycard' data-format='U2tlbGV0b25LZXljYXJk'>Skeleton Keycard</a>: In the film version, Carlino seems to have slipped a piece of plastic between door and lock to open the apartment door from the outside.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/SmugglingWithDolls' title='/pmwiki/pmwiki.php/Main/SmugglingWithDolls' data-format='U211Z2dsaW5nV2l0aERvbGxz'>Smuggling with Dolls</a>: The <span class='esc-seq' title='non-wikiword'>MacGuffin</span> that kicks off the whole plot is this when the woman uses a doll for smuggling heroin through an airport.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TheSpook' title='/pmwiki/pmwiki.php/Main/TheSpook' data-format='VGhlU3Bvb2s='>The Spook</a>: None of the other characters know Harry Roat's (which is not his real name) background. The only thing about him they find out is that he is a <a class='twikilink' href='/pmwiki/pmwiki.php/Main/Sociopath' title='/pmwiki/pmwiki.php/Main/Sociopath' data-format='e3tzb2Npb3BhdGh9fQ=='>sociopath</a> who feigns pleasantries with his soon-to-be victims.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/StepIntoTheBlindingFight' title='/pmwiki/pmwiki.php/Main/StepIntoTheBlindingFight' data-format='U3RlcEludG9UaGVCbGluZGluZ0ZpZ2h0'>Step into the Blinding Fight</a>: In the climax a blind woman battles against a killer in her apartment; she destroys all the lamps so he is disoriented but she can react just fine.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/SunglassesAtNight' title='/pmwiki/pmwiki.php/Main/SunglassesAtNight' data-format='U3VuZ2xhc3Nlc0F0TmlnaHQ='>Sunglasses at Night</a>: In the movie, Roat seems to wear sunglasses whether it's day or night, whether he's indoors or outside. He only ever takes them off to clean them, wear a disguise, or when <span class="spoiler" title="you can set spoilers visible by default on your profile" > Susy throws the hypo in his face and they're the only reason his eyes aren't damaged by the chemicals</span>.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TakingYouWithMe' title='/pmwiki/pmwiki.php/Main/TakingYouWithMe' data-format='VGFraW5nWW91V2l0aE1l'>Taking You with Me</a>: <span class="spoiler" title="you can set spoilers visible by default on your profile" > After Susy thrusts a knife into his gut, Roat nixes whatever minuscule chance of survival he may have had by pulling the weapon out of his wound and chasing down Susy, hoping to butcher her before bleeding out himself.</span></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/TeethClenchedTeamwork' title='/pmwiki/pmwiki.php/Main/TeethClenchedTeamwork' data-format='VGVldGhDbGVuY2hlZFRlYW13b3Jr'>Teeth-Clenched Teamwork</a>:<ul ><li> The three cons aren't entirely trusting each other. Roat has to blackmail them into helping him scam Susy to find out <span class="spoiler" title="you can set spoilers visible by default on your profile" >where the doll filled with heroin got to</span>.</li><li> The animosity-laced teamwork between the three crooks is contrasted with the teamwork between Susy and Gloria, who initially dislike one another and then after reconciling, join forces to sniff out the criminal's scheme.</li></ul></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/VideoCredits' title='/pmwiki/pmwiki.php/Main/VideoCredits' data-format='VmlkZW9DcmVkaXRz'>Video Credits</a>: At the end of the film for the principal players, including three different shots of "Roat" as he regularly looks and in his disguises as Roat Sr. and Roat Jr.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/WouldHurtAChild' title='/pmwiki/pmwiki.php/Main/WouldHurtAChild' data-format='V291bGRIdXJ0QUNoaWxk'>Would Hurt a Child</a>:<ul ><li> Heavily implied. The script makes a note of Gloria and Roat staring at each other at one point — Gloria, because she's seen Roat before in a different disguise and is realizing it, while Roat looks at her like a bug he wants to crush. It's almost certain that he would've killed her, had he gotten the chance.</li><li> The 2013 rewrite lampshades this when Roat in disguise as Roat Jr., annoyed by Gloria's presence, makes an implicit threat, saying he would like to, "introduce her to my little girl. <a class='twikilink' href='/pmwiki/pmwiki.php/Main/ICallItVera' title='/pmwiki/pmwiki.php/Main/ICallItVera' data-format='W1tJQ2FsbEl0VmVyYSBHZXJhbGRpbmUuIl1d'>Geraldine."</a></li></ul></li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/WouldHitAGirl' title='/pmwiki/pmwiki.php/Main/WouldHitAGirl' data-format='V291bGRIaXRBR2lybA=='>Would Hit a Girl</a>: Roat, and he does much more than hit her in the climax. Subverted with Mike, who is ultimately unable to harm Susy though he threatens to.</li><li> <a class='twikilink' href='/pmwiki/pmwiki.php/Main/YouHaveOutlivedYourUsefulness' title='/pmwiki/pmwiki.php/Main/YouHaveOutlivedYourUsefulness' data-format='WW91SGF2ZU91dGxpdmVkWW91clVzZWZ1bG5lc3M='>You Have Outlived Your Usefulness</a>: When Roat figures the other two con men are no longer needed and convinced (rightly) that his "partners" are turning on him...</li></ul><hr data-format='——' /></p></div> <div class="section-links" itemscope itemtype="http://schema.org/SiteNavigationElement"> <div class="titles"> <div><h3 class="text-center text-uppercase">Previous</h3></div> <div><h3 class="text-center text-uppercase">Index</h3></div> <div><h3 class="text-center text-uppercase">Next</h3></div> </div> <div class="links"> <ul> <li> <a href="/pmwiki/pmwiki.php/Film/TripleCross">Triple Cross</a> </li> <li> <a href="/pmwiki/pmwiki.php/Creator/TerenceYoung">Creator/Terence Young</a> </li> <li> <a href="/pmwiki/pmwiki.php/Film/ColdSweat">Cold Sweat</a> </li> </ul> <ul> <li> <a href="/pmwiki/pmwiki.php/Series/You2018">You (2018)</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/PsychologicalThriller">Psychological Thriller</a> </li> <li> <a href="/pmwiki/pmwiki.php/VideoGame/AlanWake">Alan Wake</a> </li> </ul> <ul> <li> <a href="/pmwiki/pmwiki.php/Series/You">You</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/BlindnessInMedia">Blindness in Media</a> </li> <li> <a href="/pmwiki/pmwiki.php/VideoGame/TheCatLady">The Cat Lady</a> </li> </ul> <ul> <li> <a href="/pmwiki/pmwiki.php/Theatre/AnTriail">An Triail</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/TheatreOfThe1960s">Theatre of the 1960s</a> </li> <li> <a href="/pmwiki/pmwiki.php/Theatre/WhosAfraidOfVirginiaWoolf">Who's Afraid of Virginia Woolf?</a> </li> </ul> <ul> <li> <a href="/pmwiki/pmwiki.php/Film/Viy">Viy</a> </li> <li> <a href="/pmwiki/pmwiki.php/Main/FilmsOfThe1960s">Films of the 1960s</a> </li> <li> <a href="/pmwiki/pmwiki.php/Film/TheWarWagon">The War Wagon</a> </li> </ul> <ul> <li> <a href="/pmwiki/pmwiki.php/Film/Volver">Volver</a> </li> <li> <a href="/pmwiki/pmwiki.php/Creator/WarnerBros">Creator/Warner Bros.</a> </li> <li> <a href="/pmwiki/pmwiki.php/WesternAnimation/WakkosWish">Wakko's Wish</a> </li> </ul> <ul> <li> <a href="/pmwiki/pmwiki.php/Film/Waitress">Waitress</a> </li> <li> <a href="/pmwiki/pmwiki.php/AmericanFilms/TToZ">AmericanFilms/T–Z</a> </li> <li> <a href="/pmwiki/pmwiki.php/Film/AWakefieldProject">A Wakefield Project</a> </li> </ul> </div> </div> <div id="proper_player_insert_div" class="outer_ads_by_salon_wrapper"> </div> <script> if( document.getElementById('user-prefs').classList.contains('folders-open') ){ console.log('open all folders'); var elements = document.querySelectorAll('.folderlabel, .toggle-all-folders-button'); elements.forEach((element) => { element.classList.add('is-open'); }); } </script> <script> function insert_ad(adCount, paragraph, adName, folder = 0){ var ad_count = adCount < 10 ? "0"+adCount : adCount; var inside_folder = folder ? "1" : "0"; // Create element for ad unit var adUnit = document.createElement('div'); adUnit.setAttribute("class", `htlad-${adName}`); adUnit.setAttribute("id", `${adName}_${adCount}`); adUnit.setAttribute("data-targeting", `{"slot_number": "${ad_count}", "in_folder": "${inside_folder}"}`); // Add Advertisement label var adLabel = document.createElement("span"); adLabel.innerHTML = "Advertisement:" adLabel.setAttribute("class","ad-caption"); var adWrapper = document.createElement("div"); adWrapper.setAttribute("class","tvtropes-ad-unit mobile-fad square_fad mobile_unit_scroll"); adWrapper.setAttribute("id","mobile_"+adCount); // Merge all pieces adWrapper.appendChild(adLabel); adWrapper.appendChild(adUnit); // Insert into DOM paragraph.parentNode.insertBefore(adWrapper, paragraph.nextSibling); // for getting correct ad count even when ones are deleted globalAdInsertionCount++; } function insert_ads_in_content(folder = 0, totalAdsCount = 0, pHeight = 0) { if(folder) var node = folder.firstElementChild; // Get the first traversable element of the folder else var node = document.getElementById("main-article").firstElementChild; var pCount = 0; var adCount = totalAdsCount + 1; var nodeCount = 0; var nodeLevel = 0; var x = 0; //loop through elements of content while(x<300) { x++; nodeCount++; //traverse to the next element (if exists) if(nodeCount>1) { if(!node.nextElementSibling) { console.log('adparser: no next element'); if(nodeLevel>0) { nodeLevel--; node = node.parentElement; console.log('adparser: we were down a level, go back up ('+nodeLevel+')'); continue; } else { break; } } node = node.nextElementSibling; } //skip inserted ads or empty nodes if(!node || node==="null" || typeof node !== "object") continue; if(!node.offsetHeight || node.offsetHeight==0) continue; if(node.className && node.className.includes('tvtropes-ad-unit')) continue; //skip if image block that has a caption after it (NEW: ALWAYS SKIP THE IMAGE BLOCK) if(node.className && node.className.includes('quoteright')) { // if(node.nextElementSibling && node.nextElementSibling.className && node.nextElementSibling.className.includes('acaptionright')) { pHeight += node.offsetHeight; continue; // } } //if very large element, loop through elements inside if(node.offsetHeight>700 && node.firstElementChild) { nodeLevel++; console.log('adparser: traverse through large element='+node.nodeName+', height='+node.offsetHeight+' level='+nodeLevel); node = node.firstElementChild; nodeCount = 0; continue; } // Skip if after a folder label or if the current node is a folder label itself if ((node.previousElementSibling && node.previousElementSibling.className && node.previousElementSibling.className.includes("folderlabel")) || (node.className && node.className.includes("folderlabel"))) { console.log('adparser: skipping ad insertion related to folder label'); if (!node.className || !node.className.includes("folderlabel")) { // If it's not the folder label itself, skip the insertion continue; } else { pHeight += node.offsetHeight; // If it is the folder label, just add its height to pHeight and continue continue; } } //paragraph counter if(node.nodeName=="P") pCount++; //add height of node to counter pHeight += node.offsetHeight; //add margin of node to counter if available try { var nodeStyle = getComputedStyle(node); if(nodeStyle.marginTop && parseInt(nodeStyle.marginTop)>0) pHeight+=parseInt(nodeStyle.marginTop); if(nodeStyle.marginBottom && parseInt(nodeStyle.marginBottom)>0) pHeight+=parseInt(nodeStyle.marginBottom); //console.log(nodeStyle.marginTop+','+nodeStyle.marginBottom); } catch(e) { } //debug logging console.log('adparser: name='+node.nodeName+', height='+node.offsetHeight+' =>'+pHeight); //console.log(node.className); // check if user is logged in var logged_in = 0; // Calculate the required height based on the user's logged-in status or ad count var requiredHeight = globalAdInsertionCount > 15 ? 1500 : 750; if(logged_in) requiredHeight = 2250; // only inserts an ad if the total height and paragraph count conditions are met if ((adCount === 1 && pCount >= 1 && pHeight >= 400) || pHeight >= requiredHeight) { // Check existing ad positions and compare with the item about to be inserted after var ads = document.querySelectorAll('.tvtropes-ad-unit'); var nodeBottomPosition = node.getBoundingClientRect().bottom + window.scrollY; // Get bottom position of current node var canInsertAd = true; // Flag to track if we can insert an ad ads.forEach(function (ad) { var adTop = ad.getBoundingClientRect().top + window.scrollY; var adBottom = ad.getBoundingClientRect().bottom + window.scrollY; // Ensure the new ad is at least requiredHeight away from any existing ads if (Math.abs(nodeBottomPosition - adTop) < requiredHeight || Math.abs(nodeBottomPosition - adBottom) < requiredHeight) { canInsertAd = false; console.log('adparser: cannot insert ad, not enough space between ads.'); } }); // If we can't insert an ad, skip to the next node if(!canInsertAd) continue; // after 50 ads, stop inserting. Or after 20 ads if the user is logged in if ((adCount > 50 || (adCount > 20 && logged_in))) { break; } console.log('adparser: insert ad '+adCount); insert_ad(adCount, node, "tvtropes_m_incontent_dynamic", folder); adCount++; pHeight = 0; pCount = 0; } } //insert one at end if room var maxpHeight = 500; if(logged_in) maxpHeight=1500; if(pHeight>=maxpHeight && folder==0) { console.log('adparser: insert ad'); insert_ad(adCount, document.getElementById("main-article").lastElementChild, "tvtropes_m_incontent_dynamic"); } // delete ads after the 8th one to reduce load times BCLighthouseTag.cmd.push(function() { googletag.cmd.push(function() { googletag.pubads().addEventListener('slotRequested', function(event) { const slot = event.slot; const slotName = slot.getAdUnitPath().split('/').pop() || slot.getAdUnitPath(); if(slotName === 'tvtropes_m_incontent_dynamic') { const slotNumber = parseInt(slot.getTargeting('slot_number')[0]); console.log(slotName+' = '+slotNumber); // Determine the ad slot that needs to be deleted. const adNumberToDelete = slotNumber - 8; if(adNumberToDelete > 0) { const adToDelete = document.getElementById(`mobile_${adNumberToDelete}`); if(adToDelete) { var adHeight = window.pageYOffset + adToDelete.getBoundingClientRect().top; var windowHeight = window.scrollY; // Check if the ad element exists and is above the current viewport (above the fold). if (adHeight < windowHeight) { console.log('ad delete = '+adNumberToDelete); adToDelete.remove(); } } } } }); }); }); // return pHeight return pHeight; } if(1 && (document.body.clientWidth && document.body.clientWidth<=768) ) { insert_ads_in_content(); } </script> </article> <div id="main-content-sidebar"><div class="sidebar-item display-options"> <ul class="sidebar display-toggles"> <li>Show Spoilers <div id="sidebar-toggle-showspoilers" class="display-toggle show-spoilers"></div></li> <li>Night Vision <div id="sidebar-toggle-nightvision" class="display-toggle night-vision"></div></li> <li>Sticky Header <div id="sidebar-toggle-stickyheader" class="display-toggle sticky-header"></div></li> <li>Wide Load <div id="sidebar-toggle-wideload" class="display-toggle wide-load"></div></li> </ul> <script>updateDesktopPrefs();</script> </div> <div class="sidebar-item quick-links" itemtype="http://schema.org/SiteNavigationElement"> <p class="sidebar-item-title" data-title="Important Links">Important Links</p> <div class="padded"> <a href="/pmwiki/query.php?type=att">Ask The Tropers</a> <a href="/pmwiki/query.php?type=tf">Trope Finder</a> <a href="/pmwiki/query.php?type=ykts">Media Finder</a> <a href="/pmwiki/tlp_activity.php">Trope Launch Pad</a> <a href="/pmwiki/query.php?type=wl">Tech Wishlist</a></li> <a href="/pmwiki/review_activity.php">Reviews</a> <a href="/pmwiki/ad-free-subscribe.php">Go Ad Free!</a> <div class="crucial_browsing_dropdown"> <a href="javascript:void(0);" onclick="double_dropdown(); return false;" id="crucial_browsing_dropdown"><span class="new_blue">Crucial Browsing</span><i class="fa fa-angle-down"></i></a> <ul id="main_dropdown"> <li class="first_dropdown"><a href="/pmwiki/index_report.php">Indexes</a> <li class="first_dropdown"><a href="javascript:void(0);" data-click-toggle="active">Genre</a> <ul> <li><a href='/pmwiki/pmwiki.php/Main/ActionAdventureTropes' title='Main/ActionAdventureTropes'>Action Adventure</a></li> <li><a href='/pmwiki/pmwiki.php/Main/ComedyTropes' title='Main/ComedyTropes'>Comedy</a></li> <li><a href='/pmwiki/pmwiki.php/Main/CommercialsTropes' title='Main/CommercialsTropes'>Commercials</a></li> <li><a href='/pmwiki/pmwiki.php/Main/CrimeAndPunishmentTropes' title='Main/CrimeAndPunishmentTropes'>Crime & Punishment</a></li> <li><a href='/pmwiki/pmwiki.php/Main/DramaTropes' title='Main/DramaTropes'>Drama</a></li> <li><a href='/pmwiki/pmwiki.php/Main/HorrorTropes' title='Main/HorrorTropes'>Horror</a></li> <li><a href='/pmwiki/pmwiki.php/Main/LoveTropes' title='Main/LoveTropes'>Love</a></li> <li><a href='/pmwiki/pmwiki.php/Main/NewsTropes' title='Main/NewsTropes'>News</a></li> <li><a href='/pmwiki/pmwiki.php/Main/ProfessionalWrestling' title='Main/ProfessionalWrestling'>Professional Wrestling</a></li> <li><a href='/pmwiki/pmwiki.php/Main/SpeculativeFictionTropes' title='Main/SpeculativeFictionTropes'>Speculative Fiction</a></li> <li><a href='/pmwiki/pmwiki.php/Main/SportsStoryTropes' title='Main/SportsStoryTropes'>Sports Story</a></li> <li><a href='/pmwiki/pmwiki.php/Main/WarTropes' title='Main/WarTropes'>War</a></li> </ul> </li> <li class="first_dropdown"><a href="javascript:void(0);" data-click-toggle="active">Media</a> <ul> <li><a href="/pmwiki/pmwiki.php/Main/Media" title="Main/Media">All Media</a></li> <li><a href="/pmwiki/pmwiki.php/Main/AnimationTropes" title="Main/AnimationTropes">Animation (Western)</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Anime" title="Main/Anime">Anime</a></li> <li><a href="/pmwiki/pmwiki.php/Main/ComicBookTropes" title="Main/ComicBookTropes">Comic Book</a></li> <li><a href="/pmwiki/pmwiki.php/Main/FanFic" title="FanFic/FanFics">Fan Fics</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Film" title="Main/Film">Film</a></li> <li><a href="/pmwiki/pmwiki.php/Main/GameTropes" title="Main/GameTropes">Game</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Literature" title="Main/Literature">Literature</a></li> <li><a href="/pmwiki/pmwiki.php/Main/MusicAndSoundEffects" title="Main/MusicAndSoundEffects">Music And Sound Effects</a></li> <li><a href="/pmwiki/pmwiki.php/Main/NewMediaTropes" title="Main/NewMediaTropes">New Media</a></li> <li><a href="/pmwiki/pmwiki.php/Main/PrintMediaTropes" title="Main/PrintMediaTropes">Print Media</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Radio" title="Main/Radio">Radio</a></li> <li><a href="/pmwiki/pmwiki.php/Main/SequentialArt" title="Main/SequentialArt">Sequential Art</a></li> <li><a href="/pmwiki/pmwiki.php/Main/TabletopGames" title="Main/TabletopGames">Tabletop Games</a></li> <li><a href="/pmwiki/pmwiki.php/MediaNotes/Television" title="MediaNotes/Television">Television</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Theater" title="Main/Theater">Theater</a></li> <li><a href="/pmwiki/pmwiki.php/Main/VideogameTropes" title="Main/VideogameTropes">Videogame</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Webcomics" title="Main/Webcomics">Webcomics</a></li> </ul> </li> <li class="first_dropdown"><a href="javascript:void(0);" data-click-toggle="active">Narrative</a> <ul> <li><a href="/pmwiki/pmwiki.php/Main/UniversalTropes" title="Main/UniversalTropes">Universal</a></li> <li><a href="/pmwiki/pmwiki.php/Main/AppliedPhlebotinum" title="Main/AppliedPhlebotinum">Applied Phlebotinum</a></li> <li><a href="/pmwiki/pmwiki.php/Main/CharacterizationTropes" title="Main/CharacterizationTropes">Characterization</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Characters" title="Main/Characters">Characters</a></li> <li><a href="/pmwiki/pmwiki.php/Main/CharactersAsDevice" title="Main/CharactersAsDevice">Characters As Device</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Dialogue" title="Main/Dialogue">Dialogue</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Motifs" title="Main/Motifs">Motifs</a></li> <li><a href="/pmwiki/pmwiki.php/Main/NarrativeDevices" title="Main/NarrativeDevices">Narrative Devices</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Paratext" title="Main/Paratext">Paratext</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Plots" title="Main/Plots">Plots</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Settings" title="Main/Settings">Settings</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Spectacle" title="Main/Spectacle">Spectacle</a></li> </ul> </li> <li class="first_dropdown"><a href="javascript:void(0);" data-click-toggle="active">Other Categories</a> <ul> <li><a href="/pmwiki/pmwiki.php/Main/BritishTellyTropes" title="Main/BritishTellyTropes">British Telly</a></li> <li><a href="/pmwiki/pmwiki.php/Main/TheContributors" title="Main/TheContributors">The Contributors</a></li> <li><a href="/pmwiki/pmwiki.php/Main/CreatorSpeak" title="Main/CreatorSpeak">Creator Speak</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Creators" title="Main/Creators">Creators</a></li> <li><a href="/pmwiki/pmwiki.php/Main/DerivativeWorks" title="Main/DerivativeWorks">Derivative Works</a></li> <li><a href="/pmwiki/pmwiki.php/Main/LanguageTropes" title="Main/LanguageTropes">Language</a></li> <li><a href="/pmwiki/pmwiki.php/Main/LawsAndFormulas" title="Main/LawsAndFormulas">Laws And Formulas</a></li> <li><a href="/pmwiki/pmwiki.php/Main/ShowBusiness" title="Main/ShowBusiness">Show Business</a></li> <li><a href="/pmwiki/pmwiki.php/Main/SplitPersonalityTropes" title="Main/SplitPersonalityTropes">Split Personality</a></li> <li><a href="/pmwiki/pmwiki.php/Main/StockRoom" title="Main/StockRoom">Stock Room</a></li> <li><a href="/pmwiki/pmwiki.php/Main/TropeTropes" title="Main/TropeTropes">Trope</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Tropes" title="Main/Tropes">Tropes</a></li> <li><a href="/pmwiki/pmwiki.php/Main/TruthAndLies" title="Main/TruthAndLies">Truth And Lies</a></li> <li><a href="/pmwiki/pmwiki.php/Main/TruthInTelevision" title="Main/TruthInTelevision">Truth In Television</a></li> </ul> </li> <li class="first_dropdown"><a href="javascript:void(0);" data-click-toggle="active">Topical Tropes</a> <ul> <li><a href="/pmwiki/pmwiki.php/Main/BetrayalTropes" title="Main/BetrayalTropes">Betrayal</a></li> <li><a href="/pmwiki/pmwiki.php/Main/CensorshipTropes" title="Main/CensorshipTropes">Censorship</a></li> <li><a href="/pmwiki/pmwiki.php/Main/CombatTropes" title="Main/CombatTropes">Combat</a></li> <li><a href="/pmwiki/pmwiki.php/Main/DeathTropes" title="Main/DeathTropes">Death</a></li> <li><a href="/pmwiki/pmwiki.php/Main/FamilyTropes" title="Main/FamilyTropes">Family</a></li> <li><a href="/pmwiki/pmwiki.php/Main/FateAndProphecyTropes" title="Main/FateAndProphecyTropes">Fate And Prophecy</a></li> <li><a href="/pmwiki/pmwiki.php/Main/FoodTropes" title="Main/FoodTropes">Food</a></li> <li><a href="/pmwiki/pmwiki.php/Main/HolidayTropes" title="Main/HolidayTropes">Holiday</a></li> <li><a href="/pmwiki/pmwiki.php/Main/MemoryTropes" title="Main/MemoryTropes">Memory</a></li> <li><a href="/pmwiki/pmwiki.php/Main/MoneyTropes" title="Main/MoneyTropes">Money</a></li> <li><a href="/pmwiki/pmwiki.php/Main/MoralityTropes" title="Main/MoralityTropes">Morality</a></li> <li><a href="/pmwiki/pmwiki.php/Main/PoliticsTropes" title="Main/PoliticsTropes">Politics</a></li> <li><a href="/pmwiki/pmwiki.php/Main/ReligionTropes" title="Main/ReligionTropes">Religion</a></li> <li><a href="/pmwiki/pmwiki.php/Main/SchoolTropes" title="Main/SchoolTropes">School</a></li> </ul> </li> </ul> </div> <div class="resources_dropdown"> <a href="javascript:void(0);" onclick="second_double_dropdown(); return false;" id="resources_dropdown"><span class="new_blue blue">Resources</span><i class="fa fa-angle-down"></i></a> <ul id="second_main_dropdown" class="padded font-s" itemscope itemtype="http://schema.org/SiteNavigationElement"> <li class="second_dropdown"><a href="#test" data-click-toggle="active">Tools</a> <ul> <li><a href="/pmwiki/pmwiki.php/Administrivia/IttyBittyWikiTools">Wiki Tools</a></li> <li><a href="/pmwiki/cutlist.php" data-modal-target="login" rel="nofollow">Cut List</a></li> <li><a href="/pmwiki/image-fixer.php" data-modal-target="login" rel="nofollow">Image Fixer</a></li> <li><a href="/pmwiki/changes.php">New Edits</a></li> <li><a href="/pmwiki/articles_new.php">New Articles</a></li> <li><a href="/pmwiki/recent_edit_reasons.php">Edit Reasons</a></li> <li><a href="/pmwiki/isolated_pages.php">Isolated Pages</a></li> <li><a href="/pmwiki/launches.php" data-modal-target="login" rel="nofollow">Launches</a></li> <li><a href="/pmwiki/img_list.php" data-modal-target="login" rel="nofollow">Images List</a></li> <li><a href="/pmwiki/recent_videos.php">Recent Videos</a></li> <li><a href="/pmwiki/crown_activity.php">Crowner Activity</a></li> <li><a href="/pmwiki/no_types.php">Un-typed Pages</a></li> <li><a href="/pmwiki/page_type_audit.php">Recent Page Type Changes</a></li> </ul> </li> <li class="second_dropdown"><a href="javascript:void(0);" data-click-toggle="active">Templates</a> <ul> <li><a href="/pmwiki/pmwiki.php/Main/TropeEntryTemplate">Trope Entry</a></li> <li><a href="/pmwiki/pmwiki.php/Main/ProgramEntryTemplate">Works</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/CharacterSheetTemplate">Character Sheet</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/PlayingWithWikiTemplate">Playing With</a></li> <li><a href="/pmwiki/pmwiki.php/FanficRecs/TemplatePageForNewFandomRecommendations">Fandom</a></li> </ul> </li> <li class="second_dropdown"><a href="javascript:void(0);" data-click-toggle="active">Tips</a> <ul> <li><a href="/pmwiki/pmwiki.php/Administrivia/CreatingNewRedirects">Creating New Redirects</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/Crosswicking">Cross Wicking</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/TipsForEditing">Tips for Editing</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/TextFormattingRules">Text Formatting Rules</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/TVTropesGlossary">Glossary</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/EditReasonsAndWhyYouShouldUseThem">Edit Reasons</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/HandlingSpoilers">Handling Spoilers</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/WordCruft">Word Cruft</a></li> <li><a href="/pmwiki/pmwiki.php/Main/Administrivia">Administrivia</a></li> <li><a href="/pmwiki/pmwiki.php/Main/FAQ">FAQ</a></li> </ul> </li> <li class="second_dropdown"><a href="/pmwiki/changelog.php">Changelog</a></li> <li class="second_dropdown"><a href="/pmwiki/query.php?type=bug">Report Bug</a></li> <li class="second_dropdown"><a href="/pmwiki/conversations.php?topic=renames">Trope Repair Shop</a></li> <li class="second_dropdown"><a href="/pmwiki/conversations.php?topic=images">Image Pickin'</a></li> </ul> </div> </div> <div id="asteri-sidebar" style="display:none"> <p style="margin-top: 20px;" class="sidebar-item-title" data-title="Advertisement">Advertisement:</p> <div id="asteri_cont"></div> </div> <script> //asteri enabled if((tvtropes_config.asteri_stream_enabled || tvtropes_config.get_asteri_stream == 'live')) { //aster stream currently live and not a logged-in troper if(!tvtropes_config.is_logged_in && cookies.read('asteri_event_active') != '') { document.getElementById('asteri-sidebar').style.display=""; } } </script> </div> <script> if(!is_mobile()) { //don't insert if content is too small on page var tropes_insert_side_ad=true; if(document.getElementById("main-article") && document.getElementById("main-article").clientHeight) { var sidebar_height=document.getElementById("main-article").clientHeight; if(sidebar_height>0 && sidebar_height<500) { tropes_insert_side_ad=false; console.log('ad parser: content too small for sidebar ad'); } } if(tropes_insert_side_ad) { document.write(` <div id="stick-cont" class="sidebar-item sb-fad-unit"> <p class="sidebar-item-title" data-title="Advertisement">Advertisement:</p> <div id="stick-bar" class="sidebar-section"> <div class="square_fad fad-size-300x600 fad-section text-center"> <div class='tvtropes-ad-unit '> <div id='tvtropes_dt_inview' class='htlad-tvtropes_dt_inview'></div> </div> </div> </div> </div> `); } } </script> </div> </div> <div id="action-bar-bottom" class="action-bar tablet-off"> <a href="#top-of-page" class="scroll-to-top dead-button" onclick="scroll_to_top(500);">Top</a> </div> </div> <footer id="main-footer"> <div id="main-footer-inner"> <div class="footer-left"> <a href="/" class="img-link"><img data-src="/img/tvtropes-footer-logo.png" alt="TV Tropes" class="logo_image lazy-image" title="TV Tropes" /></a> <ul class="social-buttons"> <li><a class="btn fb" target="_blank" onclick="_gaq.push(['_trackEvent', 'btn-social-icon', 'click', 'btn-facebook']);" href="https://www.facebook.com/tvtropes"><i class="fa fa-facebook"></i></a></li> <li><a class="btn tw" target="_blank" onclick="_gaq.push(['_trackEvent', 'btn-social-icon', 'click', 'btn-twitter']);" href="https://www.twitter.com/tvtropes"><i class="fa fa-twitter"></i></a> </li> </ul> </div> <hr/> <ul class="footer-menu" itemscope itemtype="http://schema.org/SiteNavigationElement"> <li><h4 class="footer-menu-header">TVTropes</h4></li> <li><a href="/pmwiki/pmwiki.php/Main/Administrivia">About TVTropes</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/TheGoalsOfTVTropes">TVTropes Goals</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/TheTropingCode">Troping Code</a></li> <li><a href="/pmwiki/pmwiki.php/Administrivia/TVTropesCustoms">TVTropes Customs</a></li> <li><a href="/pmwiki/pmwiki.php/JustForFun/TropesOfLegend">Tropes of Legend</a></li> <li><a href="/pmwiki/ad-free-subscribe.php">Go Ad-Free</a></li> </ul> <hr/> <ul class="footer-menu" itemscope itemtype="http://schema.org/SiteNavigationElement"> <li><h4 class="footer-menu-header">Community</h4></li> <li><a href="/pmwiki/query.php?type=att">Ask The Tropers</a></li> <li><a href="/pmwiki/tlp_activity.php">Trope Launch Pad</a></li> <li><a href="/pmwiki/query.php?type=tf">Trope Finder</a></li> <li><a href="/pmwiki/query.php?type=ykts">Media Finder</a></li> <li><a href="/pmwiki/query.php?type=wl">Tech Wishlist</a></li> <li><a href="/pmwiki/review_activity.php">Reviews</a></li> <li><a href="/pmwiki/topics.php">Forum</a></li> </ul> <hr/> <ul class="footer-menu" itemscope itemtype="http://schema.org/SiteNavigationElement"> <li><h4 class="footer-menu-header">Tropes HQ</h4></li> <li><a href="/pmwiki/about.php">About Us</a></li> <li><a href="/pmwiki/contact.php">Contact Us</a></li> <li><a href="/pmwiki/query.php?type=bug">Report Bug</a></li> <li><a href="/pmwiki/changelog.php">Changelog</a></li> <li><a href="/pmwiki/dmca.php">DMCA Notice</a></li> <li><a href="/pmwiki/privacypolicy.php">Privacy Policy</a></li> </ul> </div> <div id="desktop-on-mobile-toggle" class="text-center gutter-top gutter-bottom tablet-on"> <a href="/pmwiki/switchDeviceCss.php?mobileVersion=1" rel="nofollow">Switch to <span class="txt-desktop">Desktop</span><span class="txt-mobile">Mobile</span> Version</a> </div> <div class="legal"> <p>TVTropes is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License. <br>Permissions beyond the scope of this license may be available from <a xmlns:cc="http://creativecommons.org/ns#" href="mailto:thestaff@tvtropes.org" rel="cc:morePermissions"> thestaff@tvtropes.org</a>.</p> <br> <div class="privacy_wrapper"> </div> </div> </footer> <style> div.fc-ccpa-root { position: absolute !important; bottom: 93px !important; margin: auto !important; width: 100% !important; z-index: 9999 !important; overflow: hidden !important; } .fc-ccpa-root .fc-dns-dialog .fc-dns-link p{ outline: none !important; text-decoration: underline !important; font-size: .7em !important; font-family: sans-serif !important; } .fc-ccpa-root .fc-dns-dialog .fc-dns-link .fc-button-background { background: none !important; } </style> <div id="_pm_videoViewer" class="full-screen"> <a href="#close" class="close" id="_pm_videoViewer-close"></a> <div class="_pmvv-body"> <div class="_pmvv-vidbox"> </div> </div> </div> <script type="text/javascript"> var cleanCreativeEnabled = ""; var donation = ""; var live_ads = "1"; var img_domain = "https://static.tvtropes.org"; var snoozed = cookies.read('snoozedabm'); var elem = document.createElement('script'); elem.async = true; // if page type is article or homepage load bundle_nojquery. otherwise load regular bundle.js if(tvtropes_config.universal_page_type == "Article" || tvtropes_config.universal_page_type == "HomePage") { elem.src = 'https://assets.tvtropes.org/design/assets/bundle_nojquery.js?rev=a1fdc3097a55e179219cd1bf535ab41b48dc60da'; } else { elem.src = 'https://assets.tvtropes.org/design/assets/bundle.js?rev=a1fdc3097a55e179219cd1bf535ab41b48dc60da'; } elem.onload = function() { } document.getElementsByTagName('head')[0].appendChild(elem); </script> <script type="text/javascript"> function send_analytics_event(user_type, donation){ // if(user_type == 'uncached' || user_type == 'cached'){ // ga('send', 'event', 'caching', 'load', user_type, {'nonInteraction': 1}); // return; // } var event_name = user_type; if(donation == 'true'){ event_name += "_donation" }else if(typeof(valid_user) == 'undefined'){ event_name += "_blocked" }else if(valid_user == true){ event_name += "_unblocked"; }else{ event_name = "_unknown" } ga('send', 'event', 'ads', 'load', event_name, {'nonInteraction': 1}); } send_analytics_event("guest", "false"); </script> <!-- Quantcast Tag --> <script type="text/javascript"> window._qevents = window._qevents || []; (function() { var elem = document.createElement('script'); elem.src = (document.location.protocol == "https:" ? "https://secure" : "http://edge") + ".quantserve.com/quant.js"; elem.async = true; elem.type = "text/javascript"; var scpt = document.getElementsByTagName('script')[0]; scpt.parentNode.insertBefore(elem, scpt); })(); window._qevents.push({ qacct:"p-mEzuYq24VEJ-3" }); </script> <noscript> <div style="display:none;"> <img src="//pixel.quantserve.com/pixel/p-mEzuYq24VEJ-3.gif" border="0" height="1" width="1" alt="Quantcast"/> </div> </noscript> <!-- End Quantcast tag --> <!-- Begin comScore Tag --> <script> var _comscore = _comscore || []; _comscore.push({ c1: "2", c2: "38282685" }); (function() { var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true; s.src = "https://sb.scorecardresearch.com/cs/38282685/beacon.js"; el.parentNode.insertBefore(s, el); })(); </script> <noscript> <img src="https://sb.scorecardresearch.com/p?c1=2&c2=38282685&cv=3.6.0&cj=1"> </noscript> <!-- End comScore Tag --> </body> </html>