From: Subject: Dec. 5, 1951: 'Your Car Is on the 12th Floor, Lady' Date: Tue, 11 Jan 2011 16:07:34 -0600 MIME-Version: 1.0 Content-Type: multipart/related; type="multipart/alternative"; boundary="----=_NextPart_000_0129_01CBB1A9.A89E7F20" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5994 This is a multi-part message in MIME format. ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/global_header/subscribe/gh_lbSubUnit.gif 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 Z0EbWtGOlrQADQIAOw== ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/global_header/subscribe/gh_flyout_failsafe.gif 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 AQICADs= ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/global_header/rss_icon.gif R0lGODlhDAAMALMPAP/DXf/+/f/rzf/26P/FZP/XmP/ku//cpv/y3f/u1v/58P/Kcf/Ne//Sif/P ggAAACH5BAEAAA8ALAAAAAAMAAwAAARC8IFJ6yM106LSwRpjIIHSaOAiBEdWBAIDGMFJLccQFASi oCuGY3dTGAgKAQCR2AQQswDB8ANgCgsA47OdXDQTwiMCADs= ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/icon_rss.gif R0lGODlhDQANAPcAAN9gHt1aE91PAt9SAv39/f37+d6Xa+NqJeBhG91PA9xOA/udOvTBk/aQL91g Hfz9/d6CQOBTA+WJK+BVBuurcN5QAN5eGdxYEvv59u2qcfCzgvejR+2EL/qVLdhlI+mRPdtYEuGR U/737t5bFd9lI/327txWEfWgR+RtIuRsJ/r07eGRWd55NuWEG96AQuBzJt9VBe62jO99EOKJK/Sg Tf2gPeFfGealYN1lJPeMJP2fN/DDnvm3cNtKAuimgOV2AvmUMfPGrPCsfdphHt5SBOFsMPvGkdlU G+JpJvzs2+mofvr07tyHRuBgGtdUDOp1AP7x495vI/fs3fz9++eRV9xfHeF8UPGZOuBgG9dxOfqY Ne+HHf7+/tleJt1RBdyHPt6FLPurWPKHKfz28ul5BOOPN/z07/udOOKeaNZVD/v49PrEjd5PAN1V DOFtMeWBI/Gzdul5J+GRRv3XsPKCIPKjZPuXL+myeN9tJ+u3mf3//+mQUO56CvvPoOeocvaRLttg H+52AO6EKttMAe7u7v///8zMzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAANAA0A AAi3AAm5AVTFgYUmCLDYQEKIUJEhWfIoocJBTAMgHVIYMuHBgJkxBBjQ0HJGRwRDF/C4WBHCD4ES PBbUmGAoQBQIMTJ8uKNCRBg7MGq+QKNGT5IWN7gYyTHA0AhBMgKRKQNFgpwHdQQYAvEGTp8NPwpR +LJEiBdDacAUKDTnyZQdTDAEaWPIyQwphdbw0bCHhQ8rgwyR2HLlxB86cVDg6HIEgCFCB9hUGEBE QAIFPRw/JmSos+fPhAICADs= ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/icon_email.gif R0lGODlhDgALAJEAAKLo/////xqWv+X4/yH5BAAAAAAALAAAAAAOAAsAAAIklI8XNu1ugBjztSnk tTVXCkFa+FFjt5mYtXkl5yYyEAD2jd8FADs= ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/article/full/2007/12/Volkswagen_Autostadt_580x.jpg /9j/4AAQSkZJRgABAgAAZABkAAD/7AN1RHVja3kAAQAEAAAALwACAxoAAAGLADEAOQAgAE8AYwB0 ACAAMgAwADAANQAsACAAVwBPAEwARgBTAEIAVQBSAEcALAAgAEcAZQByAG0AYQBuAHkAIAAtAC0A LQAgAEEAIABuAGUAdwAgAFYAbwBsAGsAcwB3AGEAZwBlAG4AIABQAGEAcwBzAGEAdAAgAGkAcwAg AHMAdABvAHIAZQBkACAAYQB0ACAAdABoAGUAIAAnAEMAYQByAFQAbwB3AGUAcgBzACcAIABpAG4A IAB0AGgAZQAgAHQAaABlAG0AZQAgAHAAYQByAGsAIAAnAEEAdQB0AG8AcwB0AGEAZAB0ACcAIABu AGUAeAB0ACAAdABvACAAdABoAGUAIABWAG8AbABrAHMAdwBhAGcAZQBuACAAcABsAGEAbgB0ACAA aQBuACAAVwBvAGwAZgBzAGIAdQByAGcAIABPAGMAdABvAGIAZQByACAAMQA5ACwAIAAyADAAMAA1 AC4AIABUAGgAZQAgACcAQQB1AHQAbwBzAHQAYQBkAHQAJwAgAG8AZgAgAEcAZQByAG0AYQBuACAA YwBhAHIAIABtAGEAbgB1AGYAYQBjAHQAdQByAGUAcgAgAFYAbwBsAGsAcwB3AGEAZwBlAG4AIABB AEcAIABpAHMAIAB0AGgAZQAgAHcAbwByAGwAZABzACAAbABhAHIAZwBlAHMAdAAgAGMAYQByACAA ZABpAHMAdAByAGkAYgB1AHQAaQBvAG4AIABjAGUAbgB0AHIAZQAgAHcAaQB0AGgAIABhAG4AIABh AHYAZQByAGEAZwBlACAAbwBmACAANQA1ADAAIABuAGUAdwAgAGMAYQByAHMAIABjAG8AbABsAGUA YwB0AGUAZAAgAGIAeQAgAGMAdQBzAHQAbwBtAGUAcgBzACAAZABhAGkAbAB5AC4AIAAgACAALQAt AC0AIABJAG0AYQBnAGUAIABiAHkAIACpACAAQwBIAFIASQBTAFQASQBBAE4AIABDAEgAQQBSAEkA UwBJAFUAUwAvAFIAZQB1AHQAZQByAHMALwBDAG8AcgBiAGkAcwADAEIAAAAfAKkAIABDAG8AcgBi AGkAcwAuACAAIABBAGwAbAAgAFIAaQBnAGgAdABzACAAUgBlAHMAZQByAHYAZQBkAC4AAP/uAA5B ZG9iZQBkwAAAAAH/2wCEAAkGBgYHBgkHBwkNCQcJDQ8LCQkLDxIODg8ODhIRDg8ODg8OEREUFRcV FBEbGx0dGxsnJiYmJywsLCwsLCwsLCwBCgkJCgsKDAoKDA8NDg0PEw4ODg4TFg4OEA4OFhsUERER ERQbGBoXFxcaGB4eGxseHiYmJCYmLCwsLCwsLCwsLP/AABEIAkQBlAMBIgACEQEDEQH/xAGiAAAA BwEBAQEBAAAAAAAAAAAEBQMCBgEABwgJCgsBAAICAwEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAA AgEDAwIEAgYHAwQCBgJzAQIDEQQABSESMUFRBhNhInGBFDKRoQcVsUIjwVLR4TMWYvAkcoLxJUM0 U5KismNzwjVEJ5OjszYXVGR0w9LiCCaDCQoYGYSURUaktFbTVSga8uPzxNTk9GV1hZWltcXV5fVm doaWprbG1ub2N0dXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6PgpOUlZaXmJmam5ydnp+So6Slpqeoqa qrrK2ur6EQACAgECAwUFBAUGBAgDA20BAAIRAwQhEjFBBVETYSIGcYGRMqGx8BTB0eEjQhVSYnLx MyQ0Q4IWklMlomOywgdz0jXiRIMXVJMICQoYGSY2RRonZHRVN/Kjs8MoKdPj84SUpLTE1OT0ZXWF laW1xdXl9UZWZnaGlqa2xtbm9kdXZ3eHl6e3x9fn9zhIWGh4iJiouMjY6Pg5SVlpeYmZqbnJ2en5 KjpKWmp6ipqqusra6vr/2gAMAwEAAhEDEQA/AO2RQQQIEhjWKNRRVRQoA+jLChm5kCo+ye4B/rjm Xlt275eKpPeL6d9NJ4+kxoaDbkN/uwxeWKNuYf4SRyUVbr3+GuF2sUErdAWiFCd9wW/rimo2+r/V of0PIiSh0eQTklWjFWZPEFieuFV+p67Y6ZCJ7p1SBukruqKSO1WNfwyI3/5xeXIWaKzf65cU+CO3 SWYlq9/TTphX+YGsaPL510jT9ejjfR4LaWaaCWpSSdmCKnwbmhG1dq5y2/8AMUWn+c5tb0YLDFb3 bS2cCD04/TT4ViKpT4WXYjIXvzQTvXk9Vl/Ol7kXCaTod1JLFRC9y0cCRu1aeoJGB7YURfnNqFot zFp3lqCExO012pugCzluEsn7uKhPLqc5l5s1ax1XWp7+BaLc0mZOvF3AZ1368WqK4H0nV1sr2OaR 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 ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/zoom.gif R0lGODlhEwATAMQVAPn5+ebm5vf39+/v7/z8/PX19fPz8/Dw8O3t7erq6ufn5yoqKuXl5SsrK/7+ /vv7+/Hx8fb29unp6f///wAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEA ABUALAAAAAATABMAAAWtICMqUmmeishUTJAgByTP8oEkAUMxyWAUkaAwWDAMEjoFwiAAPBbQh/QB EBgQCorkUAAQGo4wOEwAFA4SLSTyaEwmlLd74nhEIGnJeuF4x+V0dnhqEXwUh4cTbnV3eXt9cG+K gY2EbX6AlIN6bA5zig2Lgo6doG6hYKOWkJKmqltdBGGzYlBnaUpMTlO8C1ZYOz0/Q0NFRzotLzE0 MzY4yCMn0hIpIhQViNna2yEAOw== ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/stumble.png iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsFAAALBQHJjchJAAAA B3RJTUUH1QsIBiMnI22AegAAAAZiS0dEAP8A/wD/oL2nkwAAAqlJREFUKM81UstrE0EYn9nMtsl2 TdI0bZrQVix5VKQQbFWiBUEFi4+C0BY9eBKV/AHSmz148Cp48lJUqBdFCgaLUFQK0p6EPogpsU3L pmmSpk3SJLvZneyO3zZ1YGd3Z79vf68PM8bQ/wXPhmHoug5785zjOMvxwhg3awhcjUaDEAIVq/W1 WO1LrPotaYvXFXWEXRnSh6LWqN1uFwSh2Yabf4J9RVl9rEd31e1atUY1qlLV0A2EkVAXF7mfvb29 TqeT53mzoVn9QLkvHUqapgEgQwxKkXFMooBTF9PSymYwGHS5XCdM7u2O7+xvuRpn3HwbsAZIbOF2 9LheryPMRLEtqbTgZDIUCpkNnxIfpeLO90vLEWG4qpsMQaGDw2v61tBCCIgBIO/uex+bf2qzEfBk iS6dtYavCsMTnzfmF/9SRQZtoxe65x6NdFv8mdoGMvnhhbX0zXMODhxcUpelsqQg7dXt4Oyz6+N3 wlqhsLq9D1D2FvuxDlCPU4Y7m81yQImz4CM5F16OvM6/7OyMv7sb6Ax6GN9quk4wMu+YEYI4S7Va NXOI6tFZV+yoJs+sz5RoMdJ/nho0p/AKQ5PeSWeL24HF37upLlaECLCqquVKpd3laiYJjr7dLEWn v8Kn6anRqcF2gtivgnzjxY8JEr/cL2BKaT6fvzWXyh7WtAYtFassU0HtDqRSJFhPnfYIhOVWNoXC 3pOBXCQSIRC4KIrjffzzLY5RSMCOfE7TFRtg4EoyUymVWxu1sQHs8/kgbwIOWq3Wh4OeXLb0ZjFL VYZMfRiyRhCApgna0ZifBu2y3x/2er0nowHy0+l0IpGI/Sl/WFfqpQaAdLHCNT/xkiLUBQIBiLmn p+dk+CA+WZYPDg4ymYwkSeA3vMI5sPV4PMAEejo6OmBm/wF0E24/Aq87YQAAAABJRU5ErkJggg== ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/email_icon.gif R0lGODlhDwAMAJEAAKLo/////xqWv+X4/yH5BAAAAAAALAAAAAAPAAwAAAIrjI8Zwu1t2JiUMrCG qFbjrXGg8HUT6GUdmo7n24ZcSC6sWD/6ZQD+D/wVAAA7 ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/clear.gif R0lGODlhNwAUAPcCAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAIALAAAAAA3ABQA AAg4AAUIHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmTKFOqXMmypcuJ AQEAOw== ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/full_page_icon.gif R0lGODlhDwAPALMAACSgySOfyKXo/6Lo/+P4/yikzeX4/xqWv////wAAAAAAAAAAAAAAAAAAAAAA AAAAACH5BAAAAAAALAAAAAAPAA8AAARMEMlJqzw4Z3uM/wBxVAdRnCdgiFT3EUYQAMcwdWgu2tfq EUBg7WbIoQzD3gq2RPIQOGPBeWP6fEloUUpVMr8HwU1DDlMGA0EazRZHAAA7 ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/comment_icon.gif R0lGODlhDwAOAJEAAKLo/xqWv////+X4/yH5BAAAAAAALAAAAAAPAA4AAAIslI8pwe1twpi0jgCW 3Vjv2kkfFY5kJpqleaHM9DRZ1AL2bR9MriDY3DvwggUAOw== ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/subscribe/xrail_cover.gif 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 hx75kVdHCYEAADs= ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/subscribe/xrail_headline.gif R0lGODlhkQAqANUAAEBAQPJVW39/fzAwMM/Pz+/v7wAAAP3j5Piqrd/f3yAgIPzU1v7x8XBwcBAQ EFBQUO84P+4qMvebn/NjafRxdq+vr/BHTY+Pj2BgYPm4uvWAhJ+fn7+/v/aNkfrGyO0cJP///wAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAACRACoAAAb/QJBw SCwaj8ikcslsOp/QqHRKrVqv2Kx2y+16v+CweEwum8/o9LJwEbgFiSWAa+CACI1pwn0pXAl+aiAC D28NA0sGXBx+HHNSCg0CGHlWAHaCl0SKIAlxQoBCigkcmCAFpaVEqQRCBa0ccYwgjnccra6ppptC tUYEpQWeQqSluBwDF7NDqKWfX5pDmG5D0QYNAAADiCDa2QoCQgPZAAoXtAMPABsgdejq5ZXj2QOV vKe4RBUO9IWdCuQUVOjmYFw+EPyyGXjWBcMDZ0SoCbH2bEArTrTmEOAGosIDdJvsIAtUwMEdjiWN KDB1i8iDgUIwhLtgz+PEXRmr4dxSAEM2/wcGHknshgkj0XY4feHLOcSd0nZMRRFJoOCBg1YVIhGJ NijcUF9cj4QNU2CAnaHWttq5AADogIFPez0SJXIuVA4JyUUMt8EBBwUHjwqhJgAguUpjE8x7sBKM 3aNoi6otUmGO0ldRkWZWFHevkA3XjHAlHE40TgH2xm4xEEjc2dIgzIqqCGxurY1DKm8WOYCkSdxN I1bCq6C1kAYPOWwYMNMe2NOwZX95MO9br4TUi2LThqhkwNLVze1+900euXRTEypIgEErM5/rqFEN eA5EewD58GZjvHOLrmW22BEKLZ2oQowuqxjjykGzYAZMPs0YOBVEtDBoikTFtCRNYMXcYf+cICBe kRU5foVo4okBaojiiiy26OKLMAqBQAABLEDFAR54cIAWC+TIQBEL0IhAjEgg0EEHHgghQQcSCOHB kU9+8EGSU3QgZQdDPHnklh0M2UQAUlKZ5ZVFHmmEllwOaSSXHWQgxAFsQgnCmmyCoOWOQ1j5AQV2 SvmBjROEiaMHP1ZJphB6+illAE6AOWURDOSIpxGOGpGon4w6qugHTXqwKZmaKgqCnmL2+QGjiTZZ 6Yw1wokknE5y2SQIDBgZ5QdYykhjBIsGoIERDCy55Y6OerAAkzsGGcCQRyIQ7AEIQHCll4hKScGW Qzp6ZKCnmhoAl0lqy6WpkEoZAQjc7gn/gpQWjBqmpx9YIKWpiqrqJ6+4UjovEhJs2q6jmkJgKpZS QsCrB6EymmeYRVTq7cD6fmDEAvsSIe8HDEhb8AFS/koqvH66i2sH0gbAcbwdXJwrEQ6DMKixIIAJ QQeVAtwBvhBv6kG00xKhpwSSClHsrb/CCwGNCsfc67JDfCBwERRImcGiUkvJ7LvWFqrnkSXDi+XW ES+8qNIRfNuBjcUqLbHX68Y7acti+5lrqIv+CHLIQm+6ctlGICAlt/Byu+PHh4qMtK9sg91wxaz6 CkK/mx6QdqVsjz0E3NXGK2TepwaAr5vwUpCjmEPrePkEEytqAQOKnityjoXrKWOXiRd+1HnFZ+7s QdRTTj5v5d3eLnERpC4+/NTqsm28EYMega+6Gn+A+uvKP94rrxOcXDa+KwufBK9HXxwkw5STaTnn jotdqtpOjm304dkuTaPIR6Q7JO+cZg57vm8+LzW6BeNW9ziXhHQVTG3h+p35gpc5Br5ueQ+7m9zU tin6AWt0QohUjoYwKAZocFK0Gh3MhNAjlwUNSBtMgggJBYIesdCFITRdjmxEhB7RkIM+QqGYZhjD FSZrhRtsHpGGSMQiGvGISEyiEpfIxCY68YlQjKIUp0jFKQYBADs= ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/footer_rss.gif R0lGODlhCgAKALMAAPaWO+6NTPm0cf/+/eV1NueGUeuDN/O4kPvPqfSjWvGNO/zCiu2VX/3u43RO Mf3evyH5BADoAwAALAAAAAAKAAoAAAQo0BFDgQUyHKH6pc0wLJ+XIGNiisKSTtaTNvDp0u+tjA9T m7AMkOCIAAA7 ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/label_textsize.gif R0lGODlhMgASAIAAAP///////yH5BAEHAAEALAAAAAAyABIAAAJMjI+py+0Po5y02ouz3hyB/1ng AWhldBppapLnGoxqEsZyHTPvnMMeztrlHC/ZkKcQHkGshXLmQwqDNJ2rFA3WRkwVrgMOi8fksplT AAA7 ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Location: http://condenast.112.2o7.net/b/ss/condenet-dev/1/H.15.1--NS/0 R0lGODlhAgACAIAAAP///wAAACH5BAEAAAAALAAAAAACAAIAAAIChFEAOw== ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.wired.com/images/global_header/submit.gif R0lGODlhFAAUAMQAAESfvdbW1ne5z7i4uPX19RGFq1Wow93u83p6eqrT4ZmZmbvc54+Pj2awyTOW t8LCwuDg4Ovr65nL24jC1SKNsa2traOjowC87GZmZszMzAB8pf///wAAAAAAAAAAAAAAACwAAAAA FAAUAAAFZmAmjmRpbmiqrqnIvqsLz/L81nac5fe+EQiMkPELChUt3wOTCQwwkAzTiSGgZE8UIUDI bgKYwNWXrTAYEC9YvMFiNg9LWB0eX6fPiLT5tLZ9QEIYSIFHSTwsOIh/iyqKiI88JpOUIQA7 ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://wired.com/images/icon_search_go.gif R0lGODlhFAASAMQAALi4uD09PUdHRzMzM4+Pj4KCgsTExLW1tcLCwlxcXJaWlq2trXBwcLS0tGZm ZqqqqrGxsby8vJycnFJSUqGhoYWFhcjIyLOzs8DAwKOjo5mZmczMzAAAAAAAAAAAAAAAACH5BAAA AAAALAAAAAAUABIAAAWwoKZJVGaeqElJokY90CXPtAw91PgcEeb/QF/k8CBBIgaLcslUGiKQ0gVj 2VivWKsFczFNq9nwtpv5bjSVCuBKqBA2Yy+VIag4AovNZFLZx8sYCgEIVmoagxsIAQpccgUJGwBp GRWQVgkFjYAFE5EVdX1XE5lkUw0BFZF1AANvBAMNml8LEwMBDGsaAgMCGn9mYVlxFEdJTcdPURI7 PUHOQ0UuMDXUFzc5IiQp2xkrIiEAOw== ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.wired.com/science/discoveries/news/2007/12/breadcrumb.css #breadcrumb { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; FONT: 1em = "arial black"; TEXT-TRANSFORM: uppercase; WIDTH: 630px; PADDING-TOP: = 10px } #breadcrumb .coupler { WHITE-SPACE: nowrap } #breadcrumb .off { WHITE-SPACE: nowrap } #breadcrumb .off A { TEXT-DECORATION: none } #breadcrumb .off A:visited { COLOR: #007ca5 } #breadcrumb .off A:active { COLOR: #999 } #breadcrumb .on { COLOR: #999; FONT-FAMILY: "arial black"; WHITE-SPACE: nowrap } #breadcrumb .on A { COLOR: #999; FONT-FAMILY: "arial black"; WHITE-SPACE: nowrap } #breadcrumb .divider { FONT: bold 1em "arial"; COLOR: #999 } ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.wired.com/css/global.css @import url( breadcrumb.css ); * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } BODY { FONT-SIZE: 62.5%; BACKGROUND: #fff; COLOR: #000; FONT-FAMILY: Georgia, = "Times New Roman", serif; TEXT-ALIGN: center } A { COLOR: #007ca5; TEXT-DECORATION: none; outline: none } A:visited { COLOR: #666 } A:active { COLOR: #999 } IMG { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } A IMG { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } #shell { TEXT-ALIGN: left } #content { BACKGROUND: #fff; COLOR: #000 } .hiddenDAU { WIDTH: 0px; HEIGHT: 0px } .hr { CLEAR: both; BACKGROUND: url(/images/mb/scratches.gif) repeat-x; = MARGIN: 0px 0px 10px; WIDTH: 628px; HEIGHT: 17px } #contentwell { FLOAT: left; OVERFLOW: hidden; WIDTH: 664px } #contentwell_blogs { FLOAT: left; OVERFLOW: hidden; WIDTH: 1000px } #xrail { FLOAT: left; WIDTH: 336px } .clearer { CLEAR: both } .login { DISPLAY: none } #global_header { CLEAR: both; FONT-FAMILY: Arial, Helvetica, sans-serif; = BACKGROUND-COLOR: #808080; TEXT-ALIGN: left } #global_header UL { LIST-STYLE-TYPE: none } #leaderboard { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; = PADDING-TOP: 10px } #leaderboard .advertisement { FLOAT: left } #leaderboard .subscriptionUnit { FLOAT: left } #supplemental_links { FLOAT: left } #global_search { FLOAT: left } #leaderboard .advertisement { PADDING-LEFT: 10px; BACKGROUND: url(/images/global_header/ad_text.gif) = no-repeat left center; WIDTH: 728px; MARGIN-RIGHT: 20px; HEIGHT: 90px } #leaderboard .subscriptionUnit { OVERFLOW: visible; WIDTH: 242px } #global_navigation { CLEAR: both; BACKGROUND-POSITION: center center; MIN-WIDTH: 1000px; = Z-INDEX: 1000; BACKGROUND-IMAGE: = url(/images/global_header/gnav_gradient.gif); BACKGROUND-REPEAT: = repeat-y; BACKGROUND-COLOR: #000 } #primary_navigation { POSITION: relative } #primary_navigation LI { POSITION: relative } #primary_navigation LI { FLOAT: left } #primary_navigation A { DISPLAY: block } #primary_navigation A.primaryLink { BACKGROUND-IMAGE: url(/images/global_header/pnav_icons.gif) } #primary_navigation A.primaryLink SPAN { DISPLAY: none } #pn_home { MARGIN-RIGHT: 22px } #pn_home A.primaryLink { BACKGROUND-POSITION: 0px 0px; WIDTH: 150px } #pn_sections A.primaryLink { BACKGROUND-POSITION: -151px 0px; WIDTH: 99px } .s_cars #pn_sections A.primaryLink { BACKGROUND-POSITION: -151px -60px } .s_culture #pn_sections A.primaryLink { BACKGROUND-POSITION: -151px -60px } .s_entertainment #pn_sections A.primaryLink { BACKGROUND-POSITION: -151px -60px } .s_gadgets #pn_sections A.primaryLink { BACKGROUND-POSITION: -151px -60px } .s_gaming #pn_sections A.primaryLink { BACKGROUND-POSITION: -151px -60px } .s_medtech #pn_sections A.primaryLink { BACKGROUND-POSITION: -151px -60px } .s_multimedia #pn_sections A.primaryLink { BACKGROUND-POSITION: -151px -60px } .s_politics { BACKGROUND-POSITION: -151px -60px } .s_science #pn_sections A.primaryLink { BACKGROUND-POSITION: -151px -60px } .s_software #pn_sections A.primaryLink { BACKGROUND-POSITION: -151px -60px } .s_techbiz #pn_sections A.primaryLink { BACKGROUND-POSITION: -151px -60px } #pn_sections A.over { BACKGROUND-POSITION: -151px -30px } #pn_blogs A.primaryLink { BACKGROUND-POSITION: -251px 0px; WIDTH: 77px } #pn_blogs A.active { BACKGROUND-POSITION: -251px -60px } #pn_blogs A.over { BACKGROUND-POSITION: -251px -30px } #pn_reviews A.primaryLink { BACKGROUND-POSITION: -329px 0px; WIDTH: 93px } .s_reviews #pn_reviews A.primaryLink { BACKGROUND-POSITION: -329px -60px } #pn_reviews A.active { BACKGROUND-POSITION: -329px -60px } #pn_reviews A.over { BACKGROUND-POSITION: -329px -30px } #pn_video A.primaryLink { BACKGROUND-POSITION: -423px 0px; WIDTH: 74px } .s_video #pn_video A.primaryLink { BACKGROUND-POSITION: -423px -60px } #pn_video A.over { BACKGROUND-POSITION: -423px -30px } #pn_how_to A.primaryLink { BACKGROUND-POSITION: -498px 0px; WIDTH: 94px } #pn_how_to A.active { BACKGROUND-POSITION: -498px -60px } #pn_how_to A.over { BACKGROUND-POSITION: -498px -30px } #pn_magazine A.primaryLink { BACKGROUND-POSITION: -593px 0px; WIDTH: 102px } #pn_magazine A.active { BACKGROUND-POSITION: -593px -60px } #pn_magazine A.over { BACKGROUND-POSITION: -593px -30px } .s_wired #pn_magazine A.primaryLink { BACKGROUND-POSITION: -593px -60px } .magazinewide #pn_magazine A.primaryLink { BACKGROUND-POSITION: -593px -60px } .magazinewide #pn_sections A.primaryLink { BACKGROUND-POSITION: -151px 0px } #pn_magazine A.over { BACKGROUND-POSITION: -593px -30px } #pn_subscribe_a A.primaryLink { BACKGROUND-POSITION: -696px 0px; WIDTH: 108px } .pn_subscribe_a A.primaryLink { BACKGROUND-POSITION: -696px 0px; WIDTH: 108px } #pn_subscribe_a A.over { BACKGROUND-POSITION: -696px -30px } .pn_subscribe_a A.over { BACKGROUND-POSITION: -696px -30px } #pn_subscribe_a A.active { BACKGROUND-POSITION: -663px -60px } .pn_subscribe_a A.active { BACKGROUND-POSITION: -663px -60px } #primary_navigation .dropdownMenu { BORDER-RIGHT: #dcdcdc 3px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #dcdcdc 3px solid; DISPLAY: none; PADDING-LEFT: 5px; Z-INDEX: 1000; = LEFT: 0px; PADDING-BOTTOM: 5px; BORDER-LEFT: #dcdcdc 3px solid; WIDTH: = 235px; PADDING-TOP: 5px; BORDER-BOTTOM: #dcdcdc 3px solid; POSITION: = absolute; TOP: 30px; BACKGROUND-COLOR: #fff } #primary_navigation .open { DISPLAY: block } #primary_navigation .dropdownMenu UL { FLOAT: left; WIDTH: 115px } #primary_navigation .dropdownMenu UL:first-child { MARGIN-RIGHT: 5px } #primary_navigation .dropdownMenu LI { BORDER-TOP: #dcdcdc 1px solid; FLOAT: none; MARGIN: 0px; POSITION: = static } #primary_navigation .dropdownMenu .lastLink { BORDER-BOTTOM: #dcdcdc 1px solid } #primary_navigation .dropdownMenu LI:first-child { BORDER-TOP-STYLE: none } #primary_navigation .dropdownMenu A { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 1.1em; = PADDING-BOTTOM: 0px; MARGIN: 1px 0px; COLOR: #666; PADDING-TOP: 4px; = HEIGHT: 15px } #primary_navigation .dropdownMenu A:hover { COLOR: #00bcec; BACKGROUND-COLOR: #efefef } LI#pn_subscribe_a .dropdownMenu { RIGHT: auto; LEFT: 0px; WIDTH: 365px } #primary_navigation .dropdownMenu .featured { CLEAR: both; BORDER-TOP: #dcdcdc 2px solid } #primary_navigation .dropdownMenu UL.fullLength { CLEAR: both; FLOAT: none; WIDTH: 265px } #primary_navigation .dropdownMenu UL.fullLength LI { CLEAR: both; FLOAT: none; WIDTH: 265px } #primary_navigation .dropdownMenu UL.fullLength A { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 5px; HEIGHT: auto } #extra_navigation { BACKGROUND-COLOR: #222 } #supplemental_links { PADDING-RIGHT: 20px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; WIDTH: = 690px; PADDING-TOP: 9px; TEXT-ALIGN: right } #supplemental_links UL { DISPLAY: inline } #supplemental_links LI { DISPLAY: inline } #supplemental_links { FONT-SIZE: 1.05em; COLOR: #999 } #supplemental_links A { FONT-SIZE: 1.05em; COLOR: #999 } #supplemental_links A { FONT-WEIGHT: bold } #supplemental_links A:hover { TEXT-DECORATION: underline } #gh_rss:hover A { TEXT-DECORATION: underline } #gh_rss { PADDING-RIGHT: 15px; POSITION: relative } #gh_rss IMG { RIGHT: 3px; POSITION: absolute; TOP: -1px } #global_search { LEFT: 4px; WIDTH: 285px; POSITION: relative; TOP: -1px; TEXT-ALIGN: = right } #global_search INPUT#gs_query { WIDTH: 145px } #global_search SELECT { BORDER-RIGHT: #fff 1px solid; BORDER-TOP: #fff 1px solid; BORDER-LEFT: = #fff 1px solid; WIDTH: 100px; BORDER-BOTTOM: #fff 1px solid } #gs_submit { POSITION: relative; TOP: 6px } .gh_username { FONT-WEIGHT: bold } #pushdownAd { MARGIN: 2px 0px 0px; BACKGROUND-COLOR: #fff } #shell { PADDING-LEFT: 10px; MARGIN: 0px auto; WIDTH: 1000px } #leaderboard { PADDING-LEFT: 10px; MARGIN: 0px auto; WIDTH: 1000px } #primary_navigation { PADDING-LEFT: 10px; MARGIN: 0px auto; WIDTH: 1000px } #secondary_navigation { PADDING-LEFT: 10px; MARGIN: 0px auto; WIDTH: 1000px } #global_navigation { HEIGHT: 30px } #extra_navigation { HEIGHT: 30px } #home_link { HEIGHT: 30px } #primary_navigation A { HEIGHT: 30px } * + HTML #global_search { TOP: 1px } * + HTML #gh_rss IMG { TOP: 1px } * + HTML #gs_submit { TOP: 3px } * + HTML #primary_navigation .dropdownMenu LI A { HEIGHT: 17px } * HTML #leaderboard .subscriptionUnit { OVERFLOW: hidden } * HTML #gh_rss IMG { POSITION: static } * HTML #global_search { TOP: 1px } * HTML #gs_submit { TOP: 3px } #footer { CLEAR: both; MARGIN: 10px 0px 0px; FONT: 1em/1.3em arial, helvetica, = sans-serif; TEXT-ALIGN: left } #footer { COLOR: #fff } #footer P { COLOR: #fff } #foot_row1 { BACKGROUND: #222; HEIGHT: 30px } #foot_row2 { BACKGROUND: #181818; HEIGHT: 30px } #foot_row3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 101; BACKGROUND: #000; = PADDING-BOTTOM: 27px; PADDING-TOP: 10px; POSITION: relative } .footer_rss { PADDING-LEFT: 2px } SPAN.pad { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 10px; PADDING-BOTTOM: = 0px; PADDING-TOP: 6px } .link_row { FLOAT: left; COLOR: #494949; PADDING-TOP: 4px } #foot_row2 .link_row { COLOR: #4b4b4b } #foot_row3 .link_row { COLOR: #4c4c4c } .condenet_sites { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; COLOR: = #292929; PADDING-TOP: 10px } .condenet_sites A { FONT-WEIGHT: bold } #copyright { FLOAT: left } #drop_downs { PADDING-BOTTOM: 5px } #drop_downs SELECT { BORDER-RIGHT: #333 1px solid; BORDER-TOP: #333 1px solid; BORDER-LEFT: = #333 1px solid; WIDTH: 170px; MARGIN-RIGHT: 10px; BORDER-BOTTOM: #333 = 1px solid } #footer .copyright { MARGIN-TOP: 5px } #shell #content #footer .text_size { PADDING-RIGHT: 15px; DISPLAY: block; FLOAT: right; POSITION: static } #footer .text_size { PADDING-RIGHT: 15px; DISPLAY: block; FLOAT: right; POSITION: static } * HTML #shell #content #with_video #xrail { FLOAT: right; WIDTH: 500px } HTML[xmlns*=3D''] BODY:unknown #shell #content #footer .text_size { MARGIN-TOP: -3px } BODY:first-child #shell #content #footer .text_size { MARGIN-TOP: 7px } .text_size A { DISPLAY: block; FLOAT: left; WIDTH: 18px; HEIGHT: 18px } #footer .text_size IMG { DISPLAY: block; FLOAT: left } #small { BACKGROUND: url(/images/icon_text_sm.gif) no-repeat 0px 0px } #small:hover { BACKGROUND: url(/images/icon_text_sm.gif) no-repeat left bottom } #small:active { BACKGROUND: url(/images/icon_text_sm.gif) no-repeat left bottom } #normal { BACKGROUND: url(/images/icon_text_med.gif) no-repeat left bottom } #normal:hover { BACKGROUND: url(/images/icon_text_med.gif) no-repeat left bottom } #normal:active { BACKGROUND: url(/images/icon_text_med.gif) no-repeat left bottom } #large { BACKGROUND: url(/images/icon_text_lg.gif) no-repeat 0px 0px } #large:hover { BACKGROUND: url(/images/icon_text_lg.gif) no-repeat left bottom } #large:active { BACKGROUND: url(/images/icon_text_lg.gif) no-repeat left bottom } #largest { BACKGROUND: url(/images/icon_text_lg2.gif) no-repeat 0px 0px } #largest:hover { BACKGROUND: url(/images/icon_text_lg2.gif) no-repeat left bottom } #largest:active { BACKGROUND: url(/images/icon_text_lg2.gif) no-repeat left bottom } DIV#debugInfoDiv { CLEAR: both; BACKGROUND: #fff; TEXT-ALIGN: left } BODY > DIV#debugInfoDiv { MARGIN-TOP: 20px } #logout_link { DISPLAY: none } .warning { PADDING-RIGHT: 0px; PADDING-LEFT: 3em; BACKGROUND: = url(/images/other/warning.gif) no-repeat 0px 0px; PADDING-BOTTOM: 0px; = FONT: bold 1.4em arial, helvetica, sans-serif; VERTICAL-ALIGN: bottom; = COLOR: #b40404; PADDING-TOP: 1em; HEIGHT: 30px } #footerAd { MARGIN: 10px; WIDTH: 1000px; TEXT-ALIGN: center } #footerAd .dartAdUnit { MARGIN: auto } #hp_advertisement { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; FONT: 9px = arial, sans-serif; MARGIN-LEFT: -10px; PADDING-TOP: 12px; TEXT-ALIGN: = center } #hp_print { DISPLAY: block; Z-INDEX: 15; BACKGROUND: = url(/images/HP_Printer_Icon2.gif) no-repeat left top; LEFT: -5px; WIDTH: = 55px; POSITION: relative; HEIGHT: 15px } #hp_print:hover { BACKGROUND-POSITION: 100% -15px } #hp_print IMG { WIDTH: 55px; HEIGHT: 15px; _height: 13px } .hp_popup { BORDER-RIGHT: 0px; PADDING-RIGHT: 5px; BORDER-TOP: 0px; PADDING-LEFT: = 10px; Z-INDEX: 1000; BACKGROUND: url(/images/hp_green_box_bottom.gif) = no-repeat 0px 0px; LEFT: -90px; VISIBILITY: hidden; PADDING-BOTTOM: 0px; = FONT: 11px arial, sans-serif; BORDER-LEFT: 0px; WIDTH: 225px; COLOR: = #666! important; PADDING-TOP: 5px; BORDER-BOTTOM: 0px; POSITION: = relative; TOP: -53px; HEIGHT: 77px; TEXT-ALIGN: left; _display: block; = _margin-bottom: -82px } #hp_ad { DISPLAY: none } #beta { OVERFLOW: visible! important } .xrail_title { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 12px; = PADDING-TOP: 0px } .sub_unit { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW: = hidden; WIDTH: 300px; PADDING-TOP: 0px } #xrail .sub_unit { FONT-SIZE: 11px; FONT-FAMILY: Arial, Helvetica, sans-serif } #xrail .sub_unit P { FONT-SIZE: 11px; FONT-FAMILY: Arial, Helvetica, sans-serif } #side_container .sub_unit { FONT-SIZE: 11px; FONT-FAMILY: Arial, Helvetica, sans-serif } #side_container .sub_unit P { FONT-SIZE: 11px; FONT-FAMILY: Arial, Helvetica, sans-serif } .cover_img { FLOAT: left; WIDTH: 145px } .text_side { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; WIDTH: 145px; PADDING-TOP: 0px } .xrail_headline { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 7px; = PADDING-TOP: 0px } .text_side P { PADDING-RIGHT: 13px; PADDING-LEFT: 13px; BACKGROUND: = url(/images/blogs/xrail_bullet.gif) no-repeat 0pt 50%; PADDING-BOTTOM: = 0px; MARGIN: 0px 0px 4px; PADDING-TOP: 0px } .text_side A { COLOR: #007ca5; TEXT-DECORATION: none } .text_side A.visited { COLOR: #007ca5; TEXT-DECORATION: none } .text_side A:hover { TEXT-DECORATION: underline } A IMG { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } #mag_sub_promo { MARGIN: 10px 0px 15px; WIDTH: 336px } #blogs_rightRail_A .sub_unit { MARGIN: 10px 0px 15px } #blogs_rightRail_A #mag_sub_promo .sub_unit { MARGIN: 0px } #contactUs_subscribeLink { DISPLAY: inline } #global_navigation A#global_navBar_failsafe { MARGIN-TOP: 20px; DISPLAY: block; HEIGHT: auto; TEXT-ALIGN: center } #global_navigation #global_navBar_rollover A { MARGIN-TOP: 20px; DISPLAY: block; HEIGHT: auto; TEXT-ALIGN: center } #global_navigation #global_navBar_failsafe:hover { BACKGROUND: none transparent scroll repeat 0% 0% } #global_navigation #global_navBar_rollover A:hover { BACKGROUND: none transparent scroll repeat 0% 0% } .autosubs { MARGIN: 15px auto 0px; WIDTH: 299px } .autosubs { FONT-SIZE: 10px } .autosubs LABEL { FONT-SIZE: 10px } .autosubs P { FONT-SIZE: 10px } FORM.frm_regsub DIV DIV IMG { TOP: -3px! important } .frm_offer { PADDING-LEFT: 92px! important; TOP: -23px } FORM.frm_regsub .frm_row { MARGIN-BOTTOM: 2px } FORM.frm_regsub .frm_row INPUT { BORDER-RIGHT: #cccccc 1px solid; BORDER-TOP: #cccccc 1px solid; = BORDER-LEFT: #cccccc 1px solid; BORDER-BOTTOM: #cccccc 1px solid; = POSITION: relative; HEIGHT: 1.7em } FORM.frm_regsub .frm_row SELECT { TOP: -6px! important } FORM.frm_regsub .frm_row INPUT { TOP: -6px! important } FORM.frm_regsub .frm_row P { MARGIN-BOTTOM: 8px! important } FORM.frm_regsub .frm_row LABEL { CLEAR: none; LINE-HEIGHT: 1! important } .autosubs A:hover { BACKGROUND: none transparent scroll repeat 0% 0% } .autosubs INPUT.submit { DISPLAY: block; FONT-SIZE: 0px; RIGHT: 0px; BACKGROUND: = url(/images/global_header/subscribe/atg_wired_submit.gif); WIDTH: 83px; = COLOR: #535353; BORDER-TOP-STYLE: none; BOTTOM: 0px; TEXT-INDENT: = -100000px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: = absolute; HEIGHT: 21px; TEXT-ALIGN: right; BORDER-BOTTOM-STYLE: none } .autosubs .nonusa { LEFT: 78px! important } .autosubs .privacy { LEFT: -5px! important } #primary_navigation .dropdownMenu #gh_close_sub_flyout { PADDING-RIGHT: 0px; BACKGROUND-POSITION: 0px 0px; PADDING-LEFT: 0px; = RIGHT: 5px; BACKGROUND-IMAGE: = url(/images/global_header/subscribe/gh_sub_close.gif); PADDING-BOTTOM: = 0px; MARGIN: 0px; WIDTH: 53px; PADDING-TOP: 0px; BACKGROUND-REPEAT: = no-repeat; POSITION: absolute; TOP: 5px; HEIGHT: 17px } #gh_close_sub_flyout:hover { BACKGROUND-POSITION: 0px -17px } #primary_navigation .dropdownMenu #gh_close_sub_flyout { CURSOR: pointer } .autosubs INPUT.submit { CURSOR: pointer } #contentPage_headerCallout { WIDTH: 280px; HEIGHT: 90px } #contentPage_headerCallout A { DISPLAY: block; FONT-SIZE: 10px; COLOR: #fff } #header_callout_text { FLOAT: left; WIDTH: 162px; MARGIN-RIGHT: 10px } #header_callout_text UL { HEIGHT: 33px } #header_callout_text LI { FLOAT: left; MARGIN: 6px 10px 0px 0px; OVERFLOW: visible; WIDTH: 70px; = LINE-HEIGHT: 10px; HEIGHT: 10px } #header_callout_text LI A { PADDING-RIGHT: 7px; DISPLAY: inline; BACKGROUND: = url(/images/global_header/subscribe/header_callout/arrow.gif) no-repeat = right 1px; TEXT-TRANSFORM: uppercase } #header_callout_text LI A:hover { TEXT-DECORATION: underline } A#header_callout_cover { DISPLAY: inline } * HTML #header_callout_text UL { WIDTH: 180px; POSITION: absolute } * HTML #header_callout_text LI { MARGIN-RIGHT: 8px } * HTML #header_callout_cover { POSITION: absolute } #pn_ipad A.primaryLink { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(/magazine/wp-content/images/assets/ipad_cm_navbar.png) 0px 30px; = PADDING-BOTTOM: 0px; MARGIN-LEFT: 31px; WIDTH: 150px; BORDER-TOP-STYLE: = none; PADDING-TOP: 0px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } #content #pn_ipad A.primaryLink { MARGIN-LEFT: 162px } #pn_ipad A.primaryLink:hover { BACKGROUND: url(/magazine/wp-content/images/assets/ipad_cm_navbar.png) = 0px 0px } ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.wired.com/css/xrail.css DIV.scrape { MARGIN-TOP: 10px; WIDTH: auto; LINE-HEIGHT: 1em } .scrape A { TEXT-DECORATION: none } .replace { DISPLAY: none } .scrape H2 { FONT: 1.6em Georgia, "times new roman", serif } .scrape H3 { FONT: bold 1.4em arial, helvetica; COLOR: #666; HEIGHT: 14px } .scrape .pic { MARGIN: 6px 10px 7px 0px } .scrape H2 A:link { COLOR: #000 } .scrape H2 A:visited { COLOR: #666 } .scrape H2 A:hover { COLOR: #007ca5 } .scrape H2 A:active { COLOR: #999 } .scrape UL LI { MARGIN: 13px 0px 10px; LIST-STYLE-TYPE: none } HTML > BODY .scrape UL LI { MARGIN: 15px 0px 16px } .scrape H4 { FONT: 1.1em "arial black", arial, helvetica; TEXT-TRANSFORM: uppercase; = COLOR: #999 } .scrape A { COLOR: #007ca5 } .scrape A:hover { COLOR: #007ca5 } .scrape P STRONG { FONT: 0.7em arial, verdana, sans-serif; TEXT-TRANSFORM: uppercase; = COLOR: #000 } .scrape P A { FONT: 1.1em arial, verdana, sans-serif; COLOR: #007ca5 } #mag H4 { MARGIN-LEFT: 10px } #mag H2 { MARGIN-LEFT: 10px } #multi H4 { MARGIN-LEFT: 10px } #multi H2 { MARGIN-LEFT: 10px } .scrape #mag H2 { LINE-HEIGHT: 1.2em } .scrape #multi H2 { LINE-HEIGHT: 1.2em } #multi .pic { FLOAT: left; MARGIN: 6px 0px 4px } HTML > BODY #multi .pic { MARGIN: 7px 0px } #xrail #popular_sponsor .matchbook_bubble { DISPLAY: none } #xrail #sponsor .matchbook_bubble { DISPLAY: none } #xrail .matchbook_bubble { CLEAR: both; BACKGROUND: url(/images/bubble_tile.gif) repeat-x 0px 0px; = MARGIN: 10px 0px; WIDTH: 336px; HEIGHT: 17px } .tool { MARGIN: 0.3em 0px; FONT: bold 1.1em arial, helvetica sans-serif; COLOR: = #666 } .tool IMG { MARGIN-RIGHT: 3px } .tool A { COLOR: #007ca5; TEXT-DECORATION: none } * HTML DIV#toolbox { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 24px; = PADDING-TOP: 0px } DIV#toolbox { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/mb/bubbles.gif) repeat-x left bottom; PADDING-BOTTOM: 34px; = MARGIN: 0px 0px 10px; WIDTH: 336px; PADDING-TOP: 0px; POSITION: = relative; HEIGHT: 72px } * + HTML DIV#toolbox { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 44px; = PADDING-TOP: 0px } DIV#toolbox UL { MARGIN: 12px 15px; LIST-STYLE-TYPE: none } DIV#sponsor { RIGHT: 0px; POSITION: absolute; TOP: 46px } DIV#toolbox > DIV#sponsor { WIDTH: 171px; TOP: 34px } HTML[xmlns*=3D''] BODY:unknown DIV#toolbox > DIV#sponsor { RIGHT: -10px } #byTxt { DISPLAY: none; FONT-SIZE: 1.1em; FLOAT: left; MARGIN: 9px 0px 0px; = WIDTH: auto } .mod5 .col2 { MARGIN-BOTTOM: 7px } .mod5 H3 { MARGIN-BOTTOM: 5px } .mod5 H3 SPAN { DISPLAY: block; MARGIN: 0px 0px 0px 5000px } .mod5 UL { CLEAR: right; FONT: bold 1.1em Georgia, "times new roman", serif; = COLOR: #999 } .mod5 UL LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 0px; MARGIN: -1px 0px; LINE-HEIGHT: 1.3em; PADDING-TOP: = 0px; LIST-STYLE-TYPE: none } * HTML .mod5 UL LI { MARGIN: -3px 0px; LINE-HEIGHT: 1.5em } .mod5 .pic { DISPLAY: block; FLOAT: left; MARGIN: 0px 10px 0px 0px; WIDTH: 110px; = HEIGHT: 110px } .mod5 #comment_by { MARGIN-TOP: 5px; FONT-SIZE: 1.1em } * DIV.mod5 #comment_by { FONT-SIZE: 1.3em } HTML[xmlns*=3D''] BODY:unknown .mod5 #comment_by { FONT-SIZE: 1.1em } .mod5 .gray { COLOR: #999 } .mod5 H4.gray { FONT-FAMILY: georgia, "times new roman", serif } .mod5 SUB { DISPLAY: block } .mod5 P .view_all { DISPLAY: block } .mod5 P .view_all { MARGIN-TOP: 7px; DISPLAY: block; FONT-SIZE: 1.1em } .mod5 .pic { MARGIN: 0px 10px 17px 0px } .mod5 BLOCKQUOTE { FONT-SIZE: 1.1em; LINE-HEIGHT: 1.2em } .mod5 #matchbook_dot { MARGIN-TOP: 7px } .mod5 #featuring { MARGIN-TOP: 3px; DISPLAY: block; FONT: bold 1.2em arial, helvetical, = sans-serif } * HTML .mod5 #featuring { MARGIN-TOP: 5px } H3#feat_com { BACKGROUND: none transparent scroll repeat 0% 0% } H3#feat_com SPAN { DISPLAY: block; MARGIN: 0px 0px 0px 5000px; COLOR: #fff } #mag H4 { MARGIN-LEFT: 10px } #mag H2 { MARGIN-LEFT: 10px } #multi H4 { MARGIN-LEFT: 10px } #multi H2 { MARGIN-LEFT: 10px } #mag H4 { =09 } .scrape #mag H2 { LINE-HEIGHT: 1.2em } .scrape #multi H2 { LINE-HEIGHT: 1.2em } BODY.home .scrape { WIDTH: 300px } .scrape .multi_home { WIDTH: 300px } #multi H3 { BACKGROUND: none transparent scroll repeat 0% 0% } #mag H3 { backgound: transparent } #multi H3 SPAN { MARGIN: 0px 0px 0px 5000px } #mag H3 SPAN.remove { POSITION: absolute; TOP: -5000px } #multi .pic { FLOAT: left; MARGIN: 6px 10px 0px 0px } #multi .pic IMG { MARGIN: 0px 10px 0px 0px } HTML > BODY #multi .pic { MARGIN: 7px 0px } #mag_on_excl H4 { LINE-HEIGHT: 1em } #mag_on_excl H3 { MARGIN: 0px 0px -9px } #mag_on_excl H4 { FONT-SIZE: 1em } #mag_on_excl LI P { FONT-SIZE: 1.3em; LINE-HEIGHT: 1em } #mag_on_excl LI P STRONG { FONT: bold 0.8em arial, helvetica, sans-serif; TEXT-TRANSFORM: = uppercase; COLOR: #000 } #mag_on_excl LI P A { FONT-SIZE: 0.9em } #mag_on_excl H3 { BACKGROUND: url(/images/modules/modhead_mag_on_extras.gif) no-repeat = 0px 0px } #mag_on_excl H3 SPAN { DISPLAY: block; MARGIN: 0px 0px 0px 5000px } HTML > BODY #mag_on_excl H3 { MARGIN: 0px 0px -6px } * HTML #mag_on_excl H3 { MARGIN-BOTTOM: -54px } #mag_on_excl #mb_bubbles { MARGIN-TOP: -6px; BACKGROUND: url(/images/mb/bubbles.gif) no-repeat 0px = 0px } * HTML #mag_on_excl #mb_bubbles { MARGIN-TOP: 9px } .inner { HEIGHT: auto } #popular_module { MARGIN: 20px 0px 0px; FONT: 1.2em georgia,"times new roman", serif; = WIDTH: 336px; HEIGHT: auto } #popular_module .t_row { BACKGROUND: url(/images/modules/popular_bg_t.gif) no-repeat 0px 0px; = MARGIN-BOTTOM: 0px; HEIGHT: 40px } #popular_module .t_row2 { FONT: bold 11px arial, helvetica, sans-serif; POSITION: relative; = HEIGHT: 30px } #popular_module .t_row2 #most_pop_tab { FLOAT: left; HEIGHT: 32px; TEXT-ALIGN: center } #popular_module .t_row2 #most_com_tab { FLOAT: left; HEIGHT: 32px; TEXT-ALIGN: center } #popular_module .t_row2 #blank_tab { FLOAT: left; HEIGHT: 32px; TEXT-ALIGN: center } #popular_module .t_row2 A { DISPLAY: block; CURSOR: pointer; HEIGHT: 25px } #popular_module .t_row2 #most_pop_tab { =09 } #popular_module .t_row2 #most_com_tab { =09 } #most_pop_tab { BACKGROUND: url(/images/modules/popular_bg_t_sel.gif) no-repeat 0px = 0px; WIDTH: 110px } #most_com_tab { BACKGROUND: url(/images/modules/commented_bg_t_un.gif) no-repeat 0px = 0px; WIDTH: 139px } .gif#popcom_bg_tr { WIDTH: 50px } #blank_tab { CLEAR: right; BACKGROUND: url(/images/modules/popcom_bg_tr.gif) = no-repeat 0px 0px; WIDTH: 50px } #popular_module .m_row { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(/images/modules/popcom_bg_m.gif) repeat-y 0px 0px; PADDING-BOTTOM: = 5px; WIDTH: 300px; PADDING-TOP: 10px; HEIGHT: 200px } HTML > BODY #popular_module .m_row { MIN-HEIGHT: 200px; HEIGHT: auto } #popular_module .m_row LI { FONT-WEIGHT: normal; MARGIN: 0px 15px 10px 35px } #popular_module .m_row LI { MARGIN-LEFT: 39px } #mostPopular { =09 } #mostCommented { DISPLAY: none } #popular_module .b_row { BACKGROUND: url(/images/modules/popcom_bg_b.gif) no-repeat 0pt -30px; = POSITION: relative; HEIGHT: 20px } #popular_module > .b_row { TOP: -10px } .replace { DISPLAY: none } DIV#popular_sponsor { RIGHT: 50px; POSITION: absolute; TOP: 5px } .b_row > DIV#popular_sponsor { WIDTH: 171px } #popular_byTxt { DISPLAY: none; FONT-WEIGHT: normal; FONT-SIZE: 1em; FLOAT: left; = MARGIN: 9px 0px 0px; WIDTH: auto } .scrape #services { FONT: 1.1em/1.2em arial, helvetica; WIDTH: 336px } .home .scrape #services { WIDTH: 302px } .scrape #services H3 { BACKGROUND: url(/images/modules/modhead_services.gif) no-repeat 0px 0px } #services H3 SPAN { DISPLAY: none } #services .group { MARGIN: 10px 0px; COLOR: #007a5c } #services .group STRONG { COLOR: black } #services .group A { MARGIN: 0px 2px } #xrail #services .matchbook_bubbles { CLEAR: both; BACKGROUND: url(/images/bubble_tile.gif) repeat-x 0px 0px; = MARGIN: 10px 0px; WIDTH: 336px; HEIGHT: 17px } #xrail #services #mb_bottom { MARGIN-TOP: 15px } #xrail #job_thread H3 { BACKGROUND: none transparent scroll repeat 0% 0%; MARGIN-BOTTOM: 10px } .jt_list { FONT-SIZE: 1em } .jt_list .job { WIDTH: auto } .location { FONT-SIZE: 0.91em } .business { FONT-SIZE: 0.91em } .reward { FONT-SIZE: 0.91em } .job_thread_end { FONT-SIZE: 0.91em } .location { FLOAT: left; WIDTH: auto } .business { FLOAT: left; WIDTH: auto } .jt_list .reward { LEFT: -115px; MARGIN: -6px 0px 7px; WIDTH: 450px; POSITION: relative; = TEXT-ALIGN: left } .jt_list .location { MARGIN: 0pt 6px 7px 2px; WIDTH: auto; TEXT-ALIGN: right; font-site: = .9em } UNKNOWN { FONT-SIZE: 0.9em; FLOAT: left } .jt_list { FONT-SIZE: 1.1em } .jt_list .referral { font-site: .9em } .jt_list .item { CLEAR: both; PADDING-BOTTOM: 5px; HEIGHT: auto } .jt_list .job_thread_end { CLEAR: both; MARGIN: 10px 0px -40px } .jt_list .job_thread_end .job { MARGIN-BOTTOM: 10px; WIDTH: 163px; font-site: .9em } .jt_list .job_thread_end .jt_logo { FONT-SIZE: 1em; LEFT: 175px; MARGIN: 25px 0pt 10px; WIDTH: 100px; = POSITION: relative; TOP: -15px } .jt_list .job_thread_end .jt_links { FLOAT: left; WIDTH: 170px } .jt_list .job_thread_end IMG { LEFT: 62px; POSITION: relative; TOP: -20px } #services #srv_subscription LI { DISPLAY: inline } ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Location: http://www.wired.com/css/fontSmall.css #breadcrumb { FONT-SIZE: 100%! important } #header { FONT-SIZE: 100%! important } #footer { FONT-SIZE: 100%! important } #secondary_package { FONT-SIZE: 100%! important } #contentwell { FONT-SIZE: 86% } #river { FONT-SIZE: 95%! important } #multimedia .item { FONT-SIZE: 95%! important } HTML BODY #small { BACKGROUND: url(/images/icon_text_sm.gif) no-repeat left bottom } HTML BODY #normal { BACKGROUND: url(/images/icon_text_med.gif) no-repeat 0px 0px } #img_links { FONT-SIZE: 11px! important } #ss_nav { FONT-SIZE: 11px! important } ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Location: http://www.wired.com/css/fontLarge.css #breadcrumb { FONT-SIZE: 100%! important } #header { FONT-SIZE: 100%! important } #footer { FONT-SIZE: 100%! important } #secondary_package { FONT-SIZE: 100%! important } #breadcrumb { FONT-SIZE: 100%! important } #contentwell { FONT-SIZE: 115% } #river { FONT-SIZE: 105% } #multimedia .item { FONT-SIZE: 115%! important } HTML BODY #large { BACKGROUND: url(/images/icon_text_lg.gif) no-repeat left bottom } HTML BODY #normal { BACKGROUND: url(/images/icon_text_med.gif) no-repeat 0px 0px } #mm_tools { FONT-SIZE: 11px! important } #img_links { FONT-SIZE: 11px! important } #ss_nav { FONT-SIZE: 11px! important } DIV#description P.photocredit { FONT-SIZE: 1em! important } .social #hidden_list { FONT-SIZE: 12px! important } ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Location: http://www.wired.com/css/fontLarge2.css #breadcrumb { FONT-SIZE: 100%! important } #header { FONT-SIZE: 100%! important } #footer { FONT-SIZE: 100%! important } #secondary_package { FONT-SIZE: 100%! important } #breadcrumb { FONT-SIZE: 100%! important } #contentwell { FONT-SIZE: 128% } #river { FONT-SIZE: 110% } #multimedia .item { FONT-SIZE: 128%! important } HTML BODY #largest { BACKGROUND: url(/images/icon_text_lg2.gif) no-repeat left bottom } HTML BODY #normal { BACKGROUND: url(/images/icon_text_med.gif) no-repeat 0px 0px } #mm_tools { FONT-SIZE: 11px! important } #img_links { FONT-SIZE: 11px! important } #ss_nav { FONT-SIZE: 11px! important } DIV#description P.photocredit { FONT-SIZE: 1em! important } .social #hidden_list { FONT-SIZE: 12px! important } ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.wired.com/css/toolbox_article_bottom.css #toolbox_art_bot { CLEAR: both; DISPLAY: block; WIDTH: 630px; HEIGHT: auto } #toolbox_art_bot .tool { FLOAT: left } #toolbox_art_bot .float_l { FLOAT: left; MARGIN-BOTTOM: 5px } #toolbox_art_bot .float_r { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: = 0px; MARGIN: 0px; WIDTH: auto; PADDING-TOP: 0px } #toolbox_art_bot #pagination { MARGIN-BOTTOM: 30px } * HTML #toolbox_art_bot #pagination { MARGIN-BOTTOM: 0px } #toolbox_art_bot #social_bkmrks { CLEAR: right; MARGIN: 20px 0px 10px; POSITION: relative } #toolbox_art_bot .social { DISPLAY: block; FLOAT: left; FONT: bold 11px arial, helvetica, = sans-serif; VERTICAL-ALIGN: bottom; WIDTH: 95px; COLOR: #007ca5 } #toolbox_art_bot #sb_art_reddit { MARGIN: 0px; POSITION: relative; TOP: -2px } * HTML #toolbox_art_bot #sb_art_reddit { MARGIN-LEFT: 5px } #toolbox_art_bot #sb_art_diggit { PADDING-LEFT: 7px; BACKGROUND: url(/images/diggit_icon.gif) no-repeat = 0px 0px; MARGIN-LEFT: 44px; WIDTH: 125px } * HTML #toolbox_art_bot #sb_art_diggit { MARGIN-LEFT: 17px } #toolbox_art_bot #sb_art_diggit A { FLOAT: left; MARGIN-LEFT: -15px } #sb_art_diggit IFRAME { MARGIN-LEFT: 10px } #sb_art_diggit A.dl { DISPLAY: block; FLOAT: left; MARGIN-LEFT: 20px } #toolbox_art_bot #sb_art_diggit A#diggit_icon_link { DISPLAY: block; LEFT: -115px; WIDTH: 16px; POSITION: relative; HEIGHT: = 16px } #toolbox_art_bot #sb_art_diggit A { DISPLAY: block; FLOAT: right! important; VERTICAL-ALIGN: bottom } #toolbox_art_bot #sb_art_stumble { MARGIN-BOTTOM: 2px; MARGIN-LEFT: -15px } #toolbox_art_bot #sb_art_stumble IMG { DISPLAY: block; FLOAT: left } #toolbox_art_bot #sb_art_stumble DIV { FLOAT: left; MARGIN-LEFT: 4px } #toolbox_art_bot .float_r { PADDING-RIGHT: 10px } #toolbox_art_bot UL { MARGIN-TOP: 5px; DISPLAY: inline; LIST-STYLE-TYPE: none } #toolbox_art_bot LI { FLOAT: left } #toolbox_art_bot .pipe { DISPLAY: block; FLOAT: left; MARGIN: 0px 2em; FONT: 1.3em "arial = black", arial, helvetica, sans-serif; COLOR: #b8b8b8 } #toolbox_art_bot UL.pages LI A { DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 0px 7px; WIDTH: auto; = TEXT-ALIGN: center } #toolbox_art_bot .tool #full_page { MARGIN-TOP: -0.1em; DISPLAY: block; FLOAT: left } #toolbox_art_bot .tool SPAN.current { PADDING-RIGHT: 4px; DISPLAY: block; PADDING-LEFT: 4px; FLOAT: left; = PADDING-BOTTOM: 0px; MARGIN: 0px 0px 0px 7px; PADDING-TOP: 0px; = BACKGROUND-COLOR: #cccccc; TEXT-ALIGN: center } #toolbox_art_bot #matchbook_plus { MARGIN-TOP: 0.6em } #article_footer .search_filter { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #999 1px = solid; MARGIN-TOP: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 4px; FONT: = 10px "Trebuchet MS", "Univers 45 Light", Verdana, sans-serif; = BORDER-LEFT: #999 1px solid; WIDTH: 150px; COLOR: #000000; PADDING-TOP: = 4px; BORDER-BOTTOM: #999 1px solid; HEIGHT: 20px; BACKGROUND-COLOR: = #fff; TEXT-ALIGN: right; _height: 16px } #toolbot_art_bot LI { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; DISPLAY: block; = PADDING-LEFT: 0px; BORDER-LEFT-WIDTH: 0px; FLOAT: none; = BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: 100%; = PADDING-TOP: 0px; WHITE-SPACE: nowrap; BACKGROUND-COLOR: #000000; = BORDER-RIGHT-WIDTH: 0px } #toolbox_art_bot #social #section { DISPLAY: block; LEFT: 1%; POSITION: absolute; TOP: 100% } #toolbox_art_bot .firstTop { DISPLAY: block; BACKGROUND: url(/images/nav_bevel_left.gif) no-repeat = left top; LEFT: -9px; MARGIN: 0px; WIDTH: 9px; POSITION: absolute; TOP: = -10px; HEIGHT: 100% } #toolbox_art_bot .firstBottom { DISPLAY: block; BACKGROUND: url(/images/nav_bevel_left.gif) no-repeat = left bottom; LEFT: -9px; MARGIN: 0px; WIDTH: 9px; POSITION: absolute; = TOP: 0px; HEIGHT: 100% } #toolbox_art_bot .middle { BACKGROUND: none transparent scroll repeat 0% 0%; POSITION: absolute } #toolbox_art_bot .lastTop { DISPLAY: block; BACKGROUND: url(/images/nav_bevel_right.gif) no-repeat = right top; LEFT: 135px; MARGIN: 0px; WIDTH: 9px; POSITION: absolute; = TOP: -9px; HEIGHT: 100% } #toolbox_art_bot .lastBottom { DISPLAY: block; BACKGROUND: url(/images/nav_bevel_right.gif) no-repeat = right bottom; LEFT: 135px; MARGIN: 0px; WIDTH: 9px; POSITION: absolute; = TOP: 0px; HEIGHT: 100% } #toolbox_art_bot #social { Z-INDEX: 1; LEFT: 15px; WIDTH: 115px; POSITION: absolute } #toolbox_art_bot #social #section { DISPLAY: block; LEFT: 1%; POSITION: absolute; TOP: 100% } #sb_art_yahoo { MARGIN-LEFT: 12px; BOTTOM: 1px; MARGIN-RIGHT: 27px } #toolbox_art_bot #sb_art_sharethis { PADDING-RIGHT: 5px; PADDING-LEFT: 22px; PADDING-BOTTOM: 5px; = MARGIN-LEFT: 4px; CURSOR: hand; PADDING-TOP: 1px } * HTML #toolbox_art_bot #sb_art_sharethis { MARGIN-LEFT: 0px } #sharethis_iefix_iframe { BORDER-RIGHT: 0pt; BORDER-TOP: 0pt; LEFT: 500px; BORDER-LEFT: 0pt; = WIDTH: 0px; BORDER-BOTTOM: 0pt; POSITION: relative; TOP: 20px; HEIGHT: = 0px; zindex: 400 } .stwrapper { =09 } *.stwrapper { =09 } [className=3D'stwrapper'] { =09 } #boxOuter { HEIGHT: auto! important } #boxTop { HEIGHT: 200px! important } #boxTopTabs { HEIGHT: 280px } #boxToContainer { HEIGHT: 240px! important } #btnShareSend { MARGIN-BOTTOM: 5px! important } #sharethis_iframe { WIDTH: 140px; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; POSITION: relative; BORDER-BOTTOM-STYLE: none } ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.wired.com/science/discoveries/news/2007/12/edit_styles.css .storyimageleft { FLOAT: left; MARGIN: 0px 15px 15px 0px } .storyimageright { FLOAT: right; MARGIN: 0px 0px 15px 15px } .youtubestoryembed { MARGIN: 0px 0px 23px 102px; WIDTH: 425px } .feedroomstoryembed { FLOAT: right; MARGIN: 0px 0px 23px 20px; WIDTH: 322px } .feedroomstoryembedlarge { FLOAT: right; MARGIN: 0px 0px 23px 20px; WIDTH: 404px } .youtubevideo { MARGIN-BOTTOM: 25px; WIDTH: 425px } .youtubevideoright { FLOAT: right; MARGIN-BOTTOM: 25px; MARGIN-LEFT: 17px; WIDTH: 425px } .videocaption { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 12px; MARGIN-BOTTOM: = 15px; PADDING-BOTTOM: 5px; COLOR: #ddd; PADDING-TOP: 5px; FONT-FAMILY: = arial,helvetica,sans-serif; BACKGROUND-COLOR: #000000 } .videocredit { FONT-SIZE: 12px; FONT-STYLE: italic; TEXT-ALIGN: right } .bcsmallvideoembed { FLOAT: right; MARGIN: 0px 0px 23px 20px; WIDTH: 486px } .videoembedlarge { FLOAT: right; MARGIN: 0px 0px 23px 20px; WIDTH: 486px } .bcfullvideoembed { MARGIN: 0px 0px 20px; WIDTH: 630px } .sidebox .hed A { FONT-SIZE: 1.3em; COLOR: rgb(0,124,165) } .sidebox .caps { FONT-WEIGHT: bold; FONT-SIZE: 1.1em; TEXT-TRANSFORM: uppercase } .mp3_player { MARGIN: 0px 0px 20px } .story_image_630px { MARGIN: 0px 0px 15px; WIDTH: 630px } .header_box { BORDER-RIGHT: rgb(212,212,212) 1px solid; PADDING-RIGHT: 10px; = BORDER-TOP: rgb(212,212,212) 1px solid; PADDING-LEFT: 10px; = PADDING-BOTTOM: 10px; MARGIN: 0px 0px 15px; BORDER-LEFT: = rgb(212,212,212) 1px solid; WIDTH: 630px; PADDING-TOP: 10px; = BORDER-BOTTOM: rgb(212,212,212) 1px solid; BACKGROUND-COLOR: = rgb(249,249,249) } #storysidebar A { FONT-SIZE: 1.4em } #storysidebar H3 { PADDING-RIGHT: 0pt; PADDING-LEFT: 0pt; PADDING-BOTTOM: 10px; FONT: = 0.8em "arial black",helvetica,sans-serif; TEXT-TRANSFORM: uppercase; = COLOR: #666666; PADDING-TOP: 0pt; font-size-adjust: none; font-stretch: = normal } .horizontal_image_1 { MARGIN: 30px 0px 0px; WIDTH: 550px; HEIGHT: 340px } .horizontal_image_2 { MARGIN: 30px 0px 0px; WIDTH: 550px; HEIGHT: 269px } .horizontal_image_3 { MARGIN: 30px 0px 0px; WIDTH: 550px; HEIGHT: 211px } .horizontal_image_4 { MARGIN: 30px 0px 0px; WIDTH: 550px; HEIGHT: 263px } .horizontal_image_5 { MARGIN: 30px 0px 0px; WIDTH: 550px; HEIGHT: 222px } .horizontal_image_left { FLOAT: left; MARGIN: 0px } .horizontal_image_right { DISPLAY: inline; FLOAT: right; MARGIN: 0px } .horizontal_image_caption_right { PADDING-RIGHT: 5px; DISPLAY: inline; PADDING-LEFT: 5px; FONT-SIZE: = 0.95em; FLOAT: right; PADDING-BOTTOM: 5px; WIDTH: 190px; COLOR: #ddd; = PADDING-TOP: 5px; FONT-FAMILY: arial,helvetica,sans-serif; HEIGHT: 100%; = BACKGROUND-COLOR: #000000 } .horizontal_image_caption_left { PADDING-RIGHT: 5px; DISPLAY: inline; PADDING-LEFT: 5px; FONT-SIZE: = 0.95em; FLOAT: left; PADDING-BOTTOM: 5px; WIDTH: 190px; COLOR: #ddd; = PADDING-TOP: 5px; FONT-FAMILY: arial,helvetica,sans-serif; HEIGHT: 100%; = BACKGROUND-COLOR: #000000 } .horizontal_image_credit { PADDING-RIGHT: 15px; PADDING-LEFT: 15px; FONT-SIZE: 0.9em; = PADDING-BOTTOM: 15px; PADDING-TOP: 15px; FONT-STYLE: italic; TEXT-ALIGN: = right } #kidneypackagetoc { FLOAT: left; MARGIN: 0px 15px 15px 0px; WIDTH: 250px } #kidneypackagetoc #kidneyhed { BACKGROUND-IMAGE: url(/images/mb/bubbles.gif); BACKGROUND-REPEAT: = repeat; HEIGHT: 15px } #kidneypackagetoc #kidneytitle { FONT-SIZE: 1.4em; MARGIN: 3px 0px 20px; HEIGHT: 20px; TEXT-ALIGN: = center; font-wieght: bold } #kidneypackagetoc #kidneybody { MARGIN: 0px 0px 10px; HEIGHT: 57px } #kidneypackagetoc #kidneybody IMG { BORDER-RIGHT: rgb(180,180,180) 3px solid; BORDER-TOP: rgb(180,180,180) = 3px solid; FLOAT: left; BORDER-LEFT: rgb(180,180,180) 3px solid; WIDTH: = 50px; MARGIN-RIGHT: 5px; BORDER-BOTTOM: rgb(180,180,180) 3px solid; = HEIGHT: 50px } #kidneypackagetoc #kidneybody P { TEXT-ALIGN: left } #article_text #kidneypackagetoc #kidneybody P { TEXT-ALIGN: left } #kidneypackagetoc #kidneyfoot { MARGIN-TOP: 15px; BACKGROUND-IMAGE: url(/images/mb/bubbles.gif); = BACKGROUND-REPEAT: repeat; HEIGHT: 15px } #kidneypackagetoc A { COLOR: rgb(0,124,165); TEXT-DECORATION: none } #storyimage0525 { FLOAT: right; MARGIN: 0px 0px 15px 15px; WIDTH: 245px } #storyimage0518 { FLOAT: right; MARGIN: 0px 0px 15px 15px; WIDTH: 350px } #article_text #storyimage0518 .storyimagecaption P { TEXT-ALIGN: left } #storyimageright0504 { FLOAT: right; MARGIN: 0px 0px 15px 15px; WIDTH: 167px } #storyimageright0504contra { FLOAT: right; MARGIN: 0px 0px 15px 15px; WIDTH: 188px } .storyimagetop { =09 } .storyimagecaption { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 0.95em; = PADDING-BOTTOM: 5px; COLOR: #ddd; PADDING-TOP: 5px; FONT-FAMILY: = arial,helvetica,sans-serif; BACKGROUND-COLOR: #000000 } .storyimagecredit { FONT-SIZE: 0.9em; FONT-STYLE: italic; TEXT-ALIGN: right } .story_image_right_250px { FLOAT: right; MARGIN: 0px 0px 15px 15px; WIDTH: 250px } .story_image_250px { BACKGROUND: #000; MARGIN: 0px 20px 20px 0px; WIDTH: 250px } .imagecaption { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #000; = PADDING-BOTTOM: 5px; FONT: 1em arial, helvetica, sans-serif; COLOR: = #ddd; PADDING-TOP: 5px; POSITION: relative } #article_text #storyimage0518 .storyimagecaption P { MARGIN-BOTTOM: 0px; LINE-HEIGHT: 1.2em } #lorepodcast { BORDER-RIGHT: rgb(127,127,127) 1px solid; PADDING-RIGHT: 5px; = BORDER-TOP: rgb(127,127,127) 1px solid; PADDING-LEFT: 5px; FONT-SIZE: = 0.8em; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 0px 7px 5px 0px; = BORDER-LEFT: rgb(127,127,127) 1px solid; WIDTH: 250px; COLOR: = rgb(90,90,90); PADDING-TOP: 5px; BORDER-BOTTOM: rgb(127,127,127) 1px = solid; HEIGHT: 123px; BACKGROUND-COLOR: rgb(240,240,240); TEXT-ALIGN: = left } #lorepodcast IMG { BORDER-RIGHT: rgb(127,127,127) 1px solid; BORDER-TOP: rgb(127,127,127) = 1px solid; FLOAT: left; MARGIN: 0px 5px 0px 0px; BORDER-LEFT: = rgb(127,127,127) 1px solid; BORDER-BOTTOM: rgb(127,127,127) 1px solid } #article_text #lorepodcast P { MARGIN: 0px; TEXT-ALIGN: left } #article_text #lorepodcast A { COLOR: rgb(0,124,165); TEXT-ALIGN: left; TEXT-DECORATION: underline } #article_text #lorepodcast H1 { FONT-WEIGHT: bold; FONT-SIZE: 1.2em; MARGIN-BOTTOM: 4px; TEXT-ALIGN: = center } #gallerypromo { BORDER-RIGHT: rgb(190,190,190) 1px solid; PADDING-RIGHT: 5px; = BORDER-TOP: rgb(190,190,190) 1px solid; PADDING-LEFT: 5px; FLOAT: left; = PADDING-BOTTOM: 5px; MARGIN: 0px 7px 5px 0px; BORDER-LEFT: = rgb(190,190,190) 1px solid; WIDTH: 200px; COLOR: rgb(90,90,90); = PADDING-TOP: 5px; BORDER-BOTTOM: rgb(190,190,190) 1px solid; = BACKGROUND-COLOR: rgb(240,240,240); TEXT-ALIGN: left } #gallerypromo IMG { BORDER-RIGHT: rgb(127,127,127) 1px solid; BORDER-TOP: rgb(127,127,127) = 1px solid; FLOAT: left; MARGIN: 0px 5px 0px 0px; BORDER-LEFT: = rgb(127,127,127) 1px solid; BORDER-BOTTOM: rgb(127,127,127) 1px solid } #article_text #gallerypromo P { MARGIN: 0px; TEXT-ALIGN: left } #article_text #gallerypromo A { FONT-SIZE: 1.3em; COLOR: rgb(0,124,165); TEXT-ALIGN: left } #article_text #gallerypromo H1 { FONT-WEIGHT: bold; FONT-SIZE: 1.2em; MARGIN-BOTTOM: 8px; TEXT-ALIGN: = center } .storytocunit { MARGIN-BOTTOM: 10px; HEIGHT: 80px } TABLE.start-table { =09 } TABLE.start-table TD { FONT-WEIGHT: normal } TABLE.start-table TD { PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; MARGIN: = 0px; WIDTH: 33%; PADDING-TOP: 7px; TEXT-ALIGN: center } TABLE.start-table TH { PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; MARGIN: = 0px; WIDTH: 33%; PADDING-TOP: 7px; TEXT-ALIGN: center } TABLE.start-table TD.expired { BACKGROUND-COLOR: #f68216 } TABLE.start-table TD.tired { BACKGROUND-COLOR: #fdab0f } TABLE.start-table TD.wired { BACKGROUND-COLOR: #ffcc00 } TABLE.start-table TH.expired { FONT-WEIGHT: bold; BACKGROUND-COLOR: #f68216 } TABLE.start-table TH.tired { FONT-WEIGHT: bold; BACKGROUND-COLOR: #fdab0f } TABLE.start-table TH.wired { FONT-WEIGHT: bold; BACKGROUND-COLOR: #ffcc00 } TABLE.start-table2 { =09 } TABLE.start-table2 TD { FONT-WEIGHT: normal } TABLE.start-table2 TD { PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; MARGIN: = 0px; PADDING-TOP: 7px; TEXT-ALIGN: left } TABLE.start-table2 TH { PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; MARGIN: = 0px; PADDING-TOP: 7px; TEXT-ALIGN: left } TABLE.start-table2 TD.orange { BACKGROUND-COLOR: #f68216 } TABLE.start-table2 TD.orange-yellow { BACKGROUND-COLOR: #fdab0f } TABLE.start-table2 TD.yellow { BACKGROUND-COLOR: #ffcc00 } TABLE.start-table2 TD.black { COLOR: #ffffff; BACKGROUND-COLOR: #000000 } TABLE.start-table2 TH.black { FONT-WEIGHT: bold; COLOR: #ffffff; BACKGROUND-COLOR: #000000 } TABLE.start-table2 TD.white { BACKGROUND-COLOR: #ffffff } TABLE.start-table2 TH.white { FONT-WEIGHT: bold; BACKGROUND-COLOR: #ffffff } TABLE.start-table2 TH.orange { FONT-WEIGHT: bold; BACKGROUND-COLOR: #f68216 } TABLE.start-table2 TH.orange-yellow { FONT-WEIGHT: bold; BACKGROUND-COLOR: #fdab0f } TABLE.start-table2 TH.yellow { FONT-WEIGHT: bold; BACKGROUND-COLOR: #ffcc00 } P.reviews_section { FONT-SIZE: 2em; MARGIN: 0px } SUP.corrections { COLOR: rgb(255,0,0) } TABLE.pl_test { FONT-SIZE: 8.5pt } A.arg { FONT-SIZE: 1em; COLOR: #fff } A.arg:link { COLOR: #fff } A.arg:visited { COLOR: #fff } A.arg:hover { COLOR: #fff } A.arg:active { COLOR: #fff } .blockquote { PADDING-RIGHT: 20px; PADDING-LEFT: 20px; PADDING-BOTTOM: 10px; = PADDING-TOP: 10px } .list1 UL { PADDING-RIGHT: 10px; PADDING-LEFT: 50px; PADDING-BOTTOM: 5px; MARGIN: = 10px 10px 5px 50px; PADDING-TOP: 10px; LIST-STYLE-TYPE: none } .list1 LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; MARGIN: 0px = 0px 3px 30px; PADDING-TOP: 0px } .list1 OL { PADDING-RIGHT: 10px; PADDING-LEFT: 50px; PADDING-BOTTOM: 5px; MARGIN: = 10px 10px 5px 50px; PADDING-TOP: 10px; LIST-STYLE-TYPE: none } #caption400wide { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #000; = PADDING-BOTTOM: 5px; FONT: 1em arial, helvetica, sans-serif; COLOR: = #ddd; PADDING-TOP: 5px; POSITION: relative } #embed400wide { WIDTH: 400px } #sidebox { BORDER-RIGHT: rgb(127,127,127) 1px solid; PADDING-RIGHT: 10px; = BORDER-TOP: rgb(127,127,127) 1px solid; PADDING-LEFT: 10px; FONT-SIZE: = 0.95em; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 0px 15px 5px 0px; = BORDER-LEFT: rgb(127,127,127) 1px solid; WIDTH: 240px; COLOR: = rgb(90,90,90); PADDING-TOP: 5px; BORDER-BOTTOM: rgb(127,127,127) 1px = solid; TEXT-ALIGN: left } .sidebox { BORDER-RIGHT: rgb(127,127,127) 1px solid; PADDING-RIGHT: 10px; = BORDER-TOP: rgb(127,127,127) 1px solid; PADDING-LEFT: 10px; FONT-SIZE: = 0.95em; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 0px 15px 5px 0px; = BORDER-LEFT: rgb(127,127,127) 1px solid; WIDTH: 240px; COLOR: = rgb(90,90,90); PADDING-TOP: 5px; BORDER-BOTTOM: rgb(127,127,127) 1px = solid; TEXT-ALIGN: left } #sidebox350 { BORDER-RIGHT: rgb(127,127,127) 1px solid; PADDING-RIGHT: 10px; = BORDER-TOP: rgb(127,127,127) 1px solid; PADDING-LEFT: 10px; FONT-SIZE: = 0.95em; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 0px 15px 5px 0px; = BORDER-LEFT: rgb(127,127,127) 1px solid; WIDTH: 350px; COLOR: = rgb(90,90,90); PADDING-TOP: 5px; BORDER-BOTTOM: rgb(127,127,127) 1px = solid; TEXT-ALIGN: left } .sidebox350 { BORDER-RIGHT: rgb(127,127,127) 1px solid; PADDING-RIGHT: 10px; = BORDER-TOP: rgb(127,127,127) 1px solid; PADDING-LEFT: 10px; FONT-SIZE: = 0.95em; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 0px 15px 5px 0px; = BORDER-LEFT: rgb(127,127,127) 1px solid; WIDTH: 350px; COLOR: = rgb(90,90,90); PADDING-TOP: 5px; BORDER-BOTTOM: rgb(127,127,127) 1px = solid; TEXT-ALIGN: left } #sidebox610 { BORDER-RIGHT: rgb(127,127,127) 1px solid; PADDING-RIGHT: 10px; = BORDER-TOP: rgb(127,127,127) 1px solid; PADDING-LEFT: 10px; FONT-SIZE: = 0.95em; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 0px 15px 5px 0px; = BORDER-LEFT: rgb(127,127,127) 1px solid; WIDTH: 610px; COLOR: = rgb(90,90,90); PADDING-TOP: 5px; BORDER-BOTTOM: rgb(127,127,127) 1px = solid; TEXT-ALIGN: left } .sidebox610 { BORDER-RIGHT: rgb(127,127,127) 1px solid; PADDING-RIGHT: 10px; = BORDER-TOP: rgb(127,127,127) 1px solid; PADDING-LEFT: 10px; FONT-SIZE: = 0.95em; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 0px 15px 5px 0px; = BORDER-LEFT: rgb(127,127,127) 1px solid; WIDTH: 610px; COLOR: = rgb(90,90,90); PADDING-TOP: 5px; BORDER-BOTTOM: rgb(127,127,127) 1px = solid; TEXT-ALIGN: left } #sidebox150 { PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 5px; WIDTH: 150px; PADDING-TOP: 0px; TEXT-ALIGN: left } .sidebox150 { PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 5px; WIDTH: 150px; PADDING-TOP: 0px; TEXT-ALIGN: left } .table-r1 { PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; COLOR: = #ffffff; PADDING-TOP: 7px; BACKGROUND-COLOR: #000000 } .table-r2 { PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; = PADDING-TOP: 7px; BACKGROUND-COLOR: #ee4900 } .table-r3 { PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; = PADDING-TOP: 7px; BACKGROUND-COLOR: #f27b00 } .table-r4 { PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; = PADDING-TOP: 7px; BACKGROUND-COLOR: #f9be00 } #googlemap { WIDTH: 620px; HEIGHT: 450px } .thumbnails_off { BORDER-RIGHT: #ededed 5px solid; BORDER-TOP: #ededed 5px solid; FLOAT: = left; MARGIN: 0px 10px 10px 0px; BORDER-LEFT: #ededed 5px solid; WIDTH: = 70px; BORDER-BOTTOM: #ededed 5px solid; HEIGHT: 70px } .thumbnails_on { BORDER-RIGHT: #000 5px solid; BORDER-TOP: #000 5px solid; FLOAT: left; = MARGIN: 0px 10px 10px 0px; BORDER-LEFT: #000 5px solid; WIDTH: 70px; = BORDER-BOTTOM: #000 5px solid; HEIGHT: 70px } .text-grey { COLOR: #666769 } .text-pink { COLOR: #e1839d } .wide_img { BACKGROUND: #000; WIDTH: 630px } .wide_caption { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 0.95em; BACKGROUND: = #000; PADDING-BOTTOM: 5px; WIDTH: 620px; COLOR: #ddd; PADDING-TOP: 5px } .wide_caption_txt { FONT-SIZE: 0.95em; COLOR: #eee; FONT-FAMILY: = arial,helvetica,sans-serif; BACKGROUND-COLOR: #000000 } .wide400_img { BACKGROUND: #000; FLOAT: left; MARGIN: 0px 0px 15px; WIDTH: 400px } .wide400_caption { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 0.95em; BACKGROUND: = #000; PADDING-BOTTOM: 5px; WIDTH: 390px; COLOR: #ddd; PADDING-TOP: 5px } .wide400_caption_txt { FONT-SIZE: 0.95em; COLOR: #eee; FONT-FAMILY: = arial,helvetica,sans-serif; BACKGROUND-COLOR: #000000 } .content_sharing { PADDING-RIGHT: 0px; PADDING-LEFT: 11px; FLOAT: right; PADDING-BOTTOM: = 10px; MARGIN: 0px 0px 30px 15px; BORDER-LEFT: #cbcbcb 1px solid; WIDTH: = 200px; PADDING-TOP: 0px; TEXT-ALIGN: left } .portfolio_img { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 13px; PADDING-TOP: 17px; BORDER-BOTTOM: #eee 1px solid } .content_sharing_txt { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 17px; BORDER-BOTTOM: #eee 1px solid } .content_sharing_sub { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 17px } .geek_matchbook { CLEAR: both; BACKGROUND: url(/images/bubble_tile.gif) repeat-x 0px 0px; = MARGIN: 10px 0px; WIDTH: 130px; HEIGHT: 17px } #geek_container { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px; WIDTH: 630px; PADDING-TOP: 0px } #geek_nav { PADDING-RIGHT: 15px; PADDING-LEFT: 0px; FONT-SIZE: 0.9em; FLOAT: left; = PADDING-BOTTOM: 5px; WIDTH: 130px; PADDING-TOP: 0px } #geek_nav LI { MARGIN-BOTTOM: 5px } #geek_text { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px; WIDTH: 480px; PADDING-TOP: 0px } .a_z_nav { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 12px; BACKGROUND: = #010101; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: 10px 0px; WIDTH: = 630px; COLOR: #666; PADDING-TOP: 5px; TEXT-ALIGN: left } .a_z_nav A { FONT-SIZE: 12px; COLOR: #fff } .a_z_nav A:visited { FONT-SIZE: 12px; COLOR: #fff } .a_z_nav A:hover { FONT-SIZE: 12px; COLOR: #007ca5 } .geek_img { PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 10px; WIDTH: 100px; PADDING-TOP: 0px; TEXT-ALIGN: left } .geek_letter { FONT-SIZE: 2em } * { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .geekipedia_list { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 10px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 20px; = FONT: 12px Georgia, "Times New Roman", serif; WIDTH: 430px; PADDING-TOP: = 15px; BORDER-COLLAPSE: collapse; BORDER-RIGHT-WIDTH: 0px } .geekipedia_list_hed { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; FONT: 14px = Georgia, "Times New Roman", serif; COLOR: #2f2f2f; PADDING-TOP: 5px; = BACKGROUND-COLOR: #e1e1e1 } .geekipedia_list A { COLOR: #007ca5; TEXT-DECORATION: none; outline: none } .geekipedia_list A:visited { COLOR: #666 } .geekipedia_list A:active { COLOR: #999 } .geekipedia_list TR.even { BACKGROUND-COLOR: #e1e1e1 } .geekipedia_timeline { BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 10px; PADDING-LEFT: 0px; = BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 20px; = FONT: 12px Georgia, "Times New Roman", serif; WIDTH: 470px; PADDING-TOP: = 15px; BORDER-COLLAPSE: collapse; BORDER-RIGHT-WIDTH: 0px } .geekipedia_timeline_2 { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; FONT: bold = 14px Georgia, "Times New Roman", serif; COLOR: #ffffff; PADDING-TOP: = 5px; BACKGROUND-COLOR: #4b4b4b } .geekipedia_timeline_date { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px; TEXT-ALIGN: right } .geekipedia_timeline A { COLOR: #007ca5; TEXT-DECORATION: none; outline: none } .geekipedia_timeline A:visited { COLOR: #666 } .geekipedia_timeline A:active { COLOR: #999 } .geekipedia_timeline TD { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; = VERTICAL-ALIGN: top; PADDING-TOP: 2px } .geekipedia_timeline TR.even { BACKGROUND-COLOR: #e1e1e1 } .geekipedia_table { PADDING-RIGHT: 10px; PADDING-LEFT: 7px; PADDING-BOTTOM: 10px; FONT: = 12px Georgia, "Times New Roman", serif; WIDTH: 430px; BORDER-TOP-STYLE: = none; PADDING-TOP: 15px; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BACKGROUND-COLOR: #ffffff; BORDER-BOTTOM-STYLE: none } .geekipedia_table_hed_1 { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; FONT: bold = 13px Georgia, "Times New Roman", serif; COLOR: #ffffff; PADDING-TOP: = 5px; BACKGROUND-COLOR: #000000 } .geekipedia_table_hed_2 { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; FONT: bold = 13px Georgia, "Times New Roman", serif; COLOR: #ffffff; PADDING-TOP: = 5px; BACKGROUND-COLOR: #4b4b4b } .geekipedia_table TD { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; = VERTICAL-ALIGN: top; PADDING-TOP: 5px } .geekipedia_table TR.even { BACKGROUND-COLOR: #e1e1e1 } .geekdiv_list { =09 } .geekdiv_list H4 { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: 100%; PADDING-BOTTOM: = 5px; PADDING-TOP: 5px; BACKGROUND-COLOR: #e1e1e1 } .geekdiv_list P { FONT-SIZE: 95%; MARGIN-LEFT: 20px } .geekdiv_alt { FONT-SIZE: 95%; BACKGROUND-COLOR: #ddd } .geekdiv_alt .alt { BACKGROUND-COLOR: #eee } #article #article_body .embedgeek { FLOAT: left; WIDTH: 160px } #article #article_body .embedgeek .pic IMG { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; WIDTH: 150px; BORDER-RIGHT-WIDTH: 0px } #article #anni_index_page .matchbook_rain_light { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 12px 0px; LINE-HEIGHT: 1em; PADDING-TOP: 0px } #anni_index_page DIV { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } P { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; PADDING-TOP: 0px } #article #article_body #anni_index_page P { PADDING-BOTTOM: 0px; LINE-HEIGHT: 1.24em } #anni_index_page { FONT-SIZE: 0.91em; LINE-HEIGHT: 1em; FONT-FAMILY: georgia,"times new = roman",serif } #anni_index_page #intro { FONT-SIZE: 1.1em; MARGIN: -9px 0px 12px; COLOR: #000 } #anni_index_page #intro P { LINE-HEIGHT: 1.1em } #anni_index_featureBox { CLEAR: both; WIDTH: 100% } #container_level_1_Items { FLOAT: left; WIDTH: 300px } #container_level_1_Items IMG { CLEAR: both; DISPLAY: block; PADDING-BOTTOM: 7px } #container_level_1_Items H5 { MARGIN-TOP: 2px; FONT: 0.9em/1.2 "arial black",helvetica,sans-serif; = TEXT-TRANSFORM: uppercase; font-size-adjust: none } #container_level_1_Items H5 A { COLOR: #007ca5; TEXT-DECORATION: none; outline-color: invert; = outline-style: none; outline-width: medium } #article_body #container_level_1_Items P { FONT-SIZE: 2em; LINE-HEIGHT: 1em } #container_level_1_Items P A { COLOR: #000 } #container_level_1_Items P A:hover { COLOR: #007ca5 } #container_level_1_Items P STRONG { DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 0.8em; TEXT-TRANSFORM: = uppercase; FONT-FAMILY: arial,helvetica,sans-serif } #container_level_1_Items .date_time { FONT-SIZE: 0.85em; LINE-HEIGHT: 1em } #container_level_2_Items { FLOAT: left; MARGIN-LEFT: 10px; WIDTH: 300px } #container_level_2_Items .item_level_2 { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 3px; MARGIN: 0px; WIDTH: 290px; PADDING-TOP: 0px } #container_level_2_Items .item_level_2 STRONG { DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 0.85em; TEXT-TRANSFORM: = uppercase; FONT-FAMILY: arial,helvetica,sans-serif } #container_level_2_Items .item_level_2 IMG { DISPLAY: block; FLOAT: left; MARGIN-BOTTOM: 10px; WIDTH: 70px; = MARGIN-RIGHT: 10px; HEIGHT: 70px } #container_level_2_Items .item_level_2 DIV { CLEAR: right } #container_level_2_Items .item_level_2 P { PADDING-RIGHT: 5px; PADDING-BOTTOM: 0px } #container_level_2_Items .item_level_2 P A { COLOR: #000; LINE-HEIGHT: 1.2em } #container_level_2_Items .item_level_2 P A:hover { COLOR: #007ca5 } .item_level_2 H5 { CLEAR: right; FONT: 0.9em "arial black",helvetica,sans-serif; = TEXT-TRANSFORM: uppercase; font-size-adjust: none } .item_level_2 H5 A { COLOR: #007ca5; TEXT-DECORATION: none; outline-color: invert; = outline-style: none; outline-width: medium } #container_level_2_Items .item_level_2 .date_time { FONT-SIZE: 0.85em; LINE-HEIGHT: 1em } .anni_index_tertiaryBox { CLEAR: all; DISPLAY: block; WIDTH: 600px } #anni_index_tertiaryBox .item_level_3 H1 { FONT: 1.2em/2em arial,helvetica,sans-serif; COLOR: #999999; = font-size-adjust: none; font-stretch: normal } #anni_index_tertiaryBox .item_level_3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 3px; MARGIN: 0px 0px 10px; WIDTH: 300px; PADDING-TOP: 0px } #anni_index_tertiaryBox .item_level_3 STRONG { DISPLAY: inline; FONT-WEIGHT: bold; FONT-SIZE: 0.85em; TEXT-TRANSFORM: = uppercase; FONT-FAMILY: arial,helvetica,sans-serif } #anni_index_tertiaryBox .item_level_3 IMG { DISPLAY: block; FLOAT: left; WIDTH: 70px; MARGIN-RIGHT: 10px; HEIGHT: = 70px } #anni_index_tertiaryBox .item_level_3 DIV { CLEAR: right } #anni_index_tertiaryBox .item_level_3 P { PADDING-RIGHT: 15px; PADDING-BOTTOM: 0px } #anni_index_tertiaryBox .item_level_3 P A { COLOR: #000; LINE-HEIGHT: 1.1em } #anni_index_tertiaryBox .item_level_3 P A:hover { COLOR: #007ca5 } .item_level_3 H5 { CLEAR: right; FONT: 0.9em "arial black",helvetica,sans-serif; = TEXT-TRANSFORM: uppercase; font-size-adjust: none } .item_level_3 H5 A { COLOR: #007ca5; TEXT-DECORATION: none; outline-color: invert; = outline-style: none; outline-width: medium } #anni_index_tertiaryBox .item_level_3 .date_time { FONT-SIZE: 0.85em; LINE-HEIGHT: 1em } #puzzleboxcontent { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: 0.9em; = PADDING-BOTTOM: 0px; COLOR: #009edb; PADDING-TOP: 21px; FONT-FAMILY: = Arial, Helvetica, sans-serif; TEXT-ALIGN: left } #puzzlebox .bit_ul { BACKGROUND-IMAGE: = url(/images/article/magazine/1705/puzzleKey_tablebit_ul.gif) } #puzzlebox .bit_ur { BACKGROUND-IMAGE: = url(/images/article/magazine/1705/puzzleKey_tablebit_right.gif) } #puzzlebox .bit_bl { BACKGROUND-IMAGE: = url(/images/article/magazine/1705/puzzleKey_tablebit_left.gif) } #puzzlebox .bit_br { BACKGROUND-IMAGE: = url(/images/article/magazine/1705/puzzleKey_tablebit_br.gif) } #puzzlebox .bit_top { BACKGROUND-IMAGE: = url(/images/article/magazine/1705/puzzleKey_tablebit_top.gif) } #puzzlebox .bit_bottom { BACKGROUND-IMAGE: = url(/images/article/magazine/1705/puzzleKey_tablebit_bottom.gif) } #puzzlebox .bit_left { BACKGROUND-IMAGE: = url(/images/article/magazine/1705/puzzleKey_tablebit_left.gif) } #puzzlebox .bit_right { BACKGROUND-IMAGE: = url(/images/article/magazine/1705/puzzleKey_tablebit_right.gif) } #puzzleboxindex { BORDER-RIGHT: #009edb 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: = #009edb 1px solid; PADDING-LEFT: 10px; FONT-SIZE: 100%; PADDING-BOTTOM: = 10px; BORDER-LEFT: #009edb 1px solid; WIDTH: 610px; PADDING-TOP: 10px; = BORDER-BOTTOM: #009edb 1px solid; FONT-FAMILY: Arial, Helvetica, = sans-serif; align: center } #puzzleboxindex TABLE { FONT-SIZE: 0.9em; WIDTH: 610px; COLOR: #009edb } #puzzleboxindex TD { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } #puzzleboxindex A.grey:link { COLOR: #999 } #puzzleboxindex A.grey:visited { COLOR: #999 } #puzzleboxindex A.grey:hover { COLOR: #999 } #puzzleboxindex TR.blue { BACKGROUND-COLOR: #e5f5fb } #puzzleboxindex A:link { COLOR: #009edb; TEXT-DECORATION: none } #puzzleboxindex A:visited { COLOR: #009edb; TEXT-DECORATION: none } #puzzleboxindex A:hover { COLOR: #009edb; TEXT-DECORATION: none } #puzzlebox A:link { COLOR: #009edb; TEXT-DECORATION: none } #puzzlebox A:visited { COLOR: #009edb; TEXT-DECORATION: none } #puzzlebox A:hover { COLOR: #009edb; TEXT-DECORATION: none } #puzzleboxindex TD.title A:link { COLOR: #fff } #puzzleboxindex TD.title A:visited { COLOR: #fff } #puzzleboxindex TD.title A:hover { COLOR: #fff } #puzzleboxindex TD.title { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND-IMAGE: = url(http://prod-preview.wired.com/images/article/magazine/1705/puzzleKey_= index_headerbg.gif); PADDING-BOTTOM: 5px; MARGIN: 0px; PADDING-TOP: 5px; = BACKGROUND-REPEAT: no-repeat; HEIGHT: 59px; TEXT-ALIGN: center } #puzzleboxindex TD.title { FONT-WEIGHT: normal; WIDTH: 610px; COLOR: #fff; FONT-FAMILY: Arial, = Helvetica, sans-serif } #puzzleboxindex TD.title TABLE { FONT-WEIGHT: normal; WIDTH: 610px; COLOR: #fff; FONT-FAMILY: Arial, = Helvetica, sans-serif } #puzzleboxindex TD.download { TEXT-ALIGN: center } #puzzleboxindex .answer { FONT-SIZE: 90% } P.puzzlebio { MARGIN: 15px 0px 40px; COLOR: #009edb } ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.wired.com/css/article.css @import url( edit_styles.css ); #contentwell { PADDING-RIGHT: 34px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW: = hidden; WIDTH: 630px; PADDING-TOP: 0px } .social { POSITION: relative } #toolbox_art_bot { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 0px 10px; PADDING-TOP: 0px; HEIGHT: 16px } #article { MARGIN: 20px 0px 0px } #article .img_middle { PADDING-BOTTOM: 3px; VERTICAL-ALIGN: middle } #article H1 { FONT: 2.3em georgia, "times new roman", serif; line-spacing: 2.6em } #article #section { MARGIN-BOTTOM: 5px; FONT: 1em "arial black", helvetica, sans-serif; = TEXT-TRANSFORM: uppercase } #article .date_time { MARGIN: 5px 0px 10px; FONT: 0.95em/1.5em georgia, "times new roman", = serif; TEXT-TRANSFORM: capitalize; COLOR: #666 } #article .date_time .img_middle { PADDING-RIGHT: 20px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } #article #article_body { FONT: 1.17em georgia, "times new roman", serif } #article #article_body #article_text { FONT: 1.2em georgia, "times new roman", serif } #article #article_body P { PADDING-BOTTOM: 18px; LINE-HEIGHT: 1.24em } #article #article_body #embed { FLOAT: left; WIDTH: 270px } #article #article_body #embed_wide { WIDTH: 630px } #article #article_body #embed #pic { BACKGROUND: #000; MARGIN: 0px 20px 20px 0px; WIDTH: 250px } #article #article_body #embed_wide #pic { BACKGROUND: #000; MARGIN: 0px 0px 20px; WIDTH: 630px } #article #article_body #embed #pic DIV#zoom A IMG { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; WIDTH: 19px; BORDER-RIGHT-WIDTH: 0px } #article #article_body #embed_wide #pic DIV#zoom A IMG { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; WIDTH: 19px; BORDER-RIGHT-WIDTH: 0px } #article #article_body #embed #pic IMG { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; WIDTH: 250px; BORDER-RIGHT-WIDTH: 0px } #article #article_body #embed_wide #pic IMG { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; WIDTH: 630px; BORDER-RIGHT-WIDTH: 0px } #article #article_body #embed #pic .zoom { POSITION: relative } #article #article_body #embed #pic .zoom IMG { Z-INDEX: 100; LEFT: 226px; WIDTH: 19px; CURSOR: pointer; POSITION: = absolute; TOP: -24px; HEIGHT: 19px } #article #article_body #embed_wide #pic .zoom { DISPLAY: none } #article #article_body #embed_wide #pic .zoom IMG { DISPLAY: none } #article #article_body #embed #caption { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #000; = PADDING-BOTTOM: 5px; FONT: 1em arial, helvetica, sans-serif; COLOR: = #ddd; PADDING-TOP: 5px; POSITION: relative } #article #article_body #embed_wide #caption { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #000; = PADDING-BOTTOM: 5px; FONT: 1em arial, helvetica, sans-serif; COLOR: = #ddd; PADDING-TOP: 5px; POSITION: relative } #article #article_body #article_text #embed #caption { FONT-SIZE: 0.85em } #article #article_body #article_text #embed_wide #caption { FONT-SIZE: 0.85em } #article #article_body #embed #caption .slideshowLink { DISPLAY: inline; WHITE-SPACE: nowrap } #article #article_body #embed_wide #caption .slideshowLink { DISPLAY: inline; WHITE-SPACE: nowrap } #article #article_body #embed #caption .slideshowLink IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; WIDTH: = 16px; PADDING-TOP: 0px; POSITION: relative; TOP: 3px; HEIGHT: 13px } #article #article_body #embed_wide #caption .slideshowLink IMG { PADDING-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; WIDTH: = 16px; PADDING-TOP: 0px; POSITION: relative; TOP: 3px; HEIGHT: 13px } #article #article_body #embed #caption .slideshowLink A { COLOR: #ddd } #article #article_body #embed_wide #caption .slideshowLink A { COLOR: #ddd } #article #article_body .left_rail { CLEAR: left; PADDING-RIGHT: 20px; PADDING-LEFT: 0px; FLOAT: left; = PADDING-BOTTOM: 0px; WIDTH: 250px; PADDING-TOP: 0px } #article #article_body .left_rail .title { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; FONT: = 0.8em "arial black", helvetica, sans-serif; TEXT-TRANSFORM: uppercase; = COLOR: #666; PADDING-TOP: 0px } #article #article_body .left_rail .subtitle { FONT: bold 0.9em arial, helvetica, sans-serif; TEXT-TRANSFORM: = uppercase; COLOR: #000 } #article #article_body .left_rail .wrapper { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; PADDING-TOP: 0px } #article #article_body .left_rail IMG { PADDING-RIGHT: 10px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 10px; MARGIN: 0px 0px 3px; WIDTH: 60px; PADDING-TOP: 0px; HEIGHT: 60px } #article .left_rail .matchbook_bubble { CLEAR: both; BACKGROUND: url(/images/bubble_tile.gif) repeat-x 0px 0px; = MARGIN: 10px 0px; WIDTH: 246px; HEIGHT: 17px } #article #article_body #article_text_narrow { MARGIN: 0px 0px 0px 270px; WIDTH: 360px } * HTML #article #article_body #article_text_narrow { FLOAT: right; MARGIN: 0px } #article .matchbook_plus { CLEAR: both; BACKGROUND: url(/images/plus_tile.gif) repeat-x 0px 0px; = WIDTH: 630px; HEIGHT: 17px } * HTML #article #mb_article_end { MARGIN-TOP: -25px } * + HTML #article #mb_article_end { MARGIN-TOP: 85px } #article #article_footer { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 10px } #article #article_footer #left_col { FLOAT: left; WIDTH: 330px; MARGIN-RIGHT: 40px } #article #article_footer #right_col { FLOAT: right; WIDTH: 260px } #article #article_footer P { PADDING-BOTTOM: 10px; FONT: 1.2em georgia, "times new roman", serif; = COLOR: #000 } #article #article_footer .date_time { MARGIN-TOP: 5px; FONT: 0.8em georgia, "times new roman", serif; = WHITE-SPACE: nowrap } #article #article_footer .date_time#correction { DISPLAY: block } #article #article_footer .title { FONT: bold 1.1em "arial", helvetica, sans-serif; COLOR: #666 } #article #article_footer #see_also H3 { FONT: bold 1.1em "arial", helvetica, sans-serif; COLOR: #666 } #see_also H3 { MARGIN-BOTTOM: 10px } #article #article_footer .title_big { FONT: bold 1.5em "arial", helvetica, sans-serif; COLOR: #666 } #article #article_footer #search { PADDING-BOTTOM: 20px } #article #article_footer #search .input_text { BORDER-RIGHT: #999 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #999 1px = solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; BORDER-LEFT: = #999 1px solid; WIDTH: 235px; PADDING-TOP: 0px; BORDER-BOTTOM: #999 1px = solid; HEIGHT: 16px } #article #article_footer #search #wrapper { DISPLAY: inline; POSITION: relative; TOP: 4px } #article #article_footer #search #wrapper .go { WIDTH: 20px; HEIGHT: 18px } #article H2 { PADDING-BOTTOM: 3px; FONT: 2.6em "arial", helvetica, sans-serif; = TEXT-TRANSFORM: uppercase } #article .matchbook_rain { CLEAR: both; BACKGROUND: url(/images/rain_tile.gif) repeat-x left top; = MARGIN-BOTTOM: 5px; WIDTH: 628px; HEIGHT: 17px } #article .matchbook_rain_light { CLEAR: both; BACKGROUND: url(/images/rain_tile_light.gif) repeat-x left = top; PADDING-BOTTOM: 15px; WIDTH: 628px; HEIGHT: 17px } #article #author_left { FLOAT: left; PADDING-TOP: 10px; HEIGHT: 70px } #article #author_left .img_middle { PADDING-RIGHT: 10px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; MARGIN: = 0px; VERTICAL-ALIGN: middle; WIDTH: 70px; PADDING-TOP: 0px; HEIGHT: 70px } #article #author_right { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: right; PADDING-BOTTOM: = 0px; PADDING-TOP: 18px; HEIGHT: 70px } #article #author_right .img_middle { VERTICAL-ALIGN: middle } #article #author_right .credit { FONT: 1.5em "arial", helvetica, sans-serif; COLOR: #666 } #article #author_left .alt_text { FONT: 2.3em "arial", helvetica, sans-serif } DIV.columnToolsL { FLOAT: left; MARGIN: 0px 10px 0px 0px } #article #comment { CLEAR: left; PADDING-RIGHT: 20px; PADDING-LEFT: 0px; FLOAT: left; = PADDING-BOTTOM: 20px; WIDTH: 250px; PADDING-TOP: 0px } #article #comment #top { BACKGROUND: url(/images/comment_back_top.gif) no-repeat 50% top; WIDTH: = 250px; HEIGHT: 35px } #article #comment #top #comment_wrapper { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; FONT: bold = 1em "arial", helvetica, sans-serif; VERTICAL-ALIGN: bottom; PADDING-TOP: = 15px } #article #comment #middle { BACKGROUND: url(/images/comment_back_middle.gif) repeat-y; WIDTH: 250px } #article #comment #middle .title { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; FONT: bold = 0.9em "arial", helvetica, sans-serif; TEXT-TRANSFORM: none; COLOR: #999; = PADDING-TOP: 0px } #article #comment #middle .name { FONT: bold 0.9em georgia, "times new roman", serif; COLOR: #444 } #article #comment #middle #date_time { PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN: = 0px; FONT: bold 0.9em georgia, "times new roman", serif; COLOR: #999; = PADDING-TOP: 0px } #article #comment #middle #text { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 6px; = PADDING-TOP: 0px } #article #comment #middle P { DISPLAY: inline; FONT: 1em georgia, "times new roman", serif; = TEXT-ALIGN: left } #article #comment #bottom { BACKGROUND: url(/images/comment_back_bottom.gif) no-repeat 50% bottom; = WIDTH: 250px; HEIGHT: 35px } #article #comment #bottom A { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 7px; FONT: 1em = georgia, "times new roman", serif; PADDING-TOP: 7px } #article #article_footer #login_register { =09 } #article #article_footer .title_big { =09 } .storyassetshell { BORDER-RIGHT: rgb(237,237,237) 1px solid; BORDER-TOP: rgb(237,237,237) = 1px solid; FONT-SIZE: 0.9em; BORDER-LEFT: rgb(237,237,237) 1px solid; = WIDTH: 410px; COLOR: rgb(140,140,140); LINE-HEIGHT: 0.95em; = BORDER-BOTTOM: rgb(237,237,237) 1px solid } .storyassetshellleft { BORDER-RIGHT: rgb(237,237,237) 1px solid; BORDER-TOP: rgb(237,237,237) = 1px solid; FONT-SIZE: 0.9em; FLOAT: left; MARGIN: 0px 7px 5px 0px; = BORDER-LEFT: rgb(237,237,237) 1px solid; WIDTH: 260px; COLOR: = rgb(140,140,140); LINE-HEIGHT: 0.95em; BORDER-BOTTOM: rgb(237,237,237) = 1px solid } .storyassetshellright { BORDER-RIGHT: rgb(237,237,237) 1px solid; BORDER-TOP: rgb(237,237,237) = 1px solid; FONT-SIZE: 0.9em; FLOAT: right; MARGIN: 0px 0px 5px 7px; = BORDER-LEFT: rgb(237,237,237) 1px solid; WIDTH: 260px; COLOR: = rgb(140,140,140); LINE-HEIGHT: 0.95em; BORDER-BOTTOM: rgb(237,237,237) = 1px solid } .storyassettop { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px; BORDER-BOTTOM: rgb(237,237,237) 1px solid } .storyassetcaption { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } .storyassetcredit { TEXT-ALIGN: right } #article #article_body #article_text .row { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: = 10px; PADDING-TOP: 0px } #article #article_body #article_text .title { FONT: bold 1.2em georgia, "times new roman", serif } #article #article_body #article_text .row .col { MARGIN: 0px 0px 0px 270px } #article #article_body #article_text .row .col_noimage { MARGIN: 10px 0px } #article #article_body #article_text .row .col .title { COLOR: #333 } #article #article_body #article_text .row .col .title A { COLOR: #333 } #article #article_body #article_text .row .col .title A:hover { COLOR: #007ca5 } #article #article_body #article_text .row .pic { FLOAT: left; WIDTH: 270px } #article #article_body #article_text .row .pic IMG { MARGIN: 0px 20px 10px 0px; WIDTH: 250px } #article #article_body #article_text .row .pic .zoom { POSITION: relative } #article #article_body #article_text .row .pic .zoom IMG { Z-INDEX: 100; LEFT: 226px; WIDTH: 19px; CURSOR: pointer; POSITION: = absolute; TOP: -34px; HEIGHT: 16px } #ad_rail { MARGIN: 20px 0px; FONT: 1.1em arial, helvetica, sans-serif } #ad_rail .ads_by_google { MARGIN-BOTTOM: 7px } #ad_rail .big_br { MARGIN-BOTTOM: 5px } #ad_rail A { TEXT-DECORATION: none } #ad_rail > A:first-child { MARGIN-BOTTOM: 10px } #ad_rail SPAN { FONT-SIZE: 1.1em } #ad_rail .ad_text BR { DISPLAY: inline } #ad_rail A SPAN { FONT-SIZE: 1.1em; TEXT-DECORATION: none } #ad_rail SPAN A { FONT-SIZE: 1.1em; TEXT-DECORATION: underline } #article .from_reuters { PADDING-RIGHT: 104px; PADDING-BOTTOM: 5px; POSITION: relative } #article #reuters_logo { RIGHT: 8px; POSITION: absolute; TOP: -3px } * HTML #article #reuters_logo { RIGHT: 40px } #see_also .reuters_credit { FONT-SIZE: 11px; PADDING-BOTTOM: 13px; COLOR: #666; FONT-FAMILY: = "Arial",helvetica,sans-serif } ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.wired.com/css/wiredcomment.css H3.com_count { CLEAR: both; MARGIN: 10px 0px 0px; FONT: 18px arial, helvetica, = sans-serif; COLOR: #666 } #commentContainer H5 { DISPLAY: block; MARGIN: 0pt; FONT: 0.8em "arial = black",helvetica,sans-serif; TEXT-TRANSFORM: uppercase; COLOR: #007ca5 } #contentwell #showall_well { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: = 0px; MARGIN: 0px 20px 0px 0px; OVERFLOW: hidden; WIDTH: 628px; = PADDING-TOP: 0px } #showall_well H2 { FONT-SIZE: 2.4em } #showall_well A.back { FONT-SIZE: 1em; dispay: block } .caption A { COLOR: #007ca5 } #commentContainer H5 A { COLOR: #007ca5 } .matchbook_plus { CLEAR: both; BACKGROUND: url(http://www.wired.com/images/plus_tile.gif) = repeat-x 0px 0px; WIDTH: 628px; HEIGHT: 17px } #video_page .matchbook_plus { WIDTH: 400px } #shell #content #commentContainer .matchbook_rain_light { CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: = url(http://www.wired.com/images/mb/rain_tile_light.gif) repeat-x 0px = 0px; PADDING-BOTTOM: 0px; MARGIN: 6px 0px 10px; WIDTH: 628px; = PADDING-TOP: 0px; HEIGHT: 17px } * HTML #shell #content #video_page #commentContainer = .matchbook_rain_light { WIDTH: 400px } #comment_well_top { HEIGHT: 20px } * HTML #video_page #xrail { =09 } #video_page .matchbook_rain_light { WIDTH: 444px } .seeall_com { CLEAR: both; MARGIN: 0px; FONT: 12px arial, helvetica, sans-serif } .login_class { CLEAR: both; DISPLAY: block; FLOAT: right; MARGIN: 0px 4px 8px 0px; = FONT: 11px arial, helvetica, sans-serif } P.login_class { FLOAT: none; FONT: 13px georgia, "times new roman", serif; COLOR: #000 } .num_comments { FLOAT: right; MARGIN: 0px 0px 5px; FONT: 11px arial, helvetica, = sans-serif; WIDTH: 400px; TEXT-ALIGN: right } .logout { FLOAT: right; MARGIN: 0px 0px 5px; FONT: 11px arial, helvetica, = sans-serif; WIDTH: 400px; TEXT-ALIGN: right } .num_comments { RIGHT: -65px; MARGIN: 0px; COLOR: #000; POSITION: relative; TOP: 0px } #comment_well_bottom .num_comments { MARGIN: 0px 0px 10px } #pagination_bottom { MARGIN-TOP: -5px } .num_comments SPAN { DISPLAY: block; FLOAT: left; MARGIN: 0px 4px } .num_comments SPAN A { MARGIN: 0px } .num_comments .active_page SPAN { MARGIN: 0px } .num_comments .active_page A { DISPLAY: block; WIDTH: 12px; HEIGHT: 13px; TEXT-ALIGN: center } .num_comments .active_page { MARGIN: 0px 1px; WIDTH: 12px; HEIGHT: 13px; TEXT-ALIGN: center } .num_comments .selected_page { MARGIN: 0px 1px; WIDTH: 12px; HEIGHT: 13px; TEXT-ALIGN: center } .num_comments .selected_page { BACKGROUND: #b4d3e1 } .num_comments .disabled_nextprevious { DISPLAY: none } LABEL { CLEAR: right; DISPLAY: block; FONT: 1.1em arial, helvetica, sans-serif } .commentContainer { CLEAR: both; FONT: 1.2em georgia, "times new roman", serif } .comment { MARGIN: 10px 0px 0px 20px; POSITION: relative } .comment_text { BORDER-RIGHT: #999 1px solid; BORDER-TOP: #999 1px solid; OVERFLOW-Y: = scroll; DISPLAY: block; OVERFLOW-X: hidden; MARGIN: 5px 0px; = BORDER-LEFT: #999 1px solid; WIDTH: 95%; BORDER-BOTTOM: #999 1px solid; = HEIGHT: 79px } .the_comments { MARGIN-LEFT: -17px } #comment_text { WIDTH: 99% } .commentbody P { COLOR: #000 } .commentbody DIV { COLOR: #000 } .commentbody DIV P { MARGIN-BOTTOM: 5px } #showall_well .comment_text { WIDTH: 85% } #with_video .comment_text { WIDTH: 400px } #shell #content #with_video #commentContainer .matchbook_rain_light { WIDTH: 440px } .arrows { LEFT: -3px; WIDTH: 13px; POSITION: relative; TOP: 8px; HEIGHT: 30px } UNKNOWN { FLOAT: left; POSITION: relative } .arrows A { CURSOR: pointer } .arrows .uparrow { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; WIDTH: 13px; PADDING-TOP: 0px; HEIGHT: 14px } .arrows .downarrow { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; WIDTH: 13px; PADDING-TOP: 0px; HEIGHT: 14px } .arrows .vote_up_active { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; WIDTH: 13px; PADDING-TOP: 0px; HEIGHT: 14px } .arrows .vote_down_active { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 0px; PADDING-BOTTOM: = 0px; MARGIN: 0px; WIDTH: 13px; PADDING-TOP: 0px; HEIGHT: 14px } .arrows IMG { DISPLAY: block } .arrows .uparrow { BACKGROUND: url(http://www.wired.com/images/comments/arrowup2.gif) = no-repeat 0px 0px; LEFT: 0px; POSITION: absolute; TOP: 0px } .arrows .vote_up_active { BACKGROUND: url(http://www.wired.com/images/comments/arrowup2.gif) = no-repeat 0px 0px; LEFT: 0px; POSITION: absolute; TOP: 0px } .arrows .upimg { BACKGROUND: url(http://www.wired.com/images/comments/arrowup2.gif) = no-repeat 0px 0px; LEFT: 0px; POSITION: absolute; TOP: 0px } * HTML .arrows A.uparrow { BACKGROUND: url(http://www.wired.com/images/comments/arrowupgray2.gif) = no-repeat 0px 0px } * HTML .arrows A.uparrow:hover { BACKGROUND: url(http://www.wired.com/images/comments/arrowupblue2.jpg) = no-repeat 0px 0px } * HTML .arrows A.vote_up_active { BACKGROUND: url(http://www.wired.com/images/comments/arrowupblue2.jpg) = no-repeat 0px 0px } .arrows .downarrow { BACKGROUND: url(http://www.wired.com/images/comments/arrowdown2.gif) = no-repeat 0px 0px; LEFT: 0px; POSITION: absolute; TOP: 16px } .arrows .vote_down_active { BACKGROUND: url(http://www.wired.com/images/comments/arrowdown2.gif) = no-repeat 0px 0px; LEFT: 0px; POSITION: absolute; TOP: 16px } .arrows .downimg { BACKGROUND: url(http://www.wired.com/images/comments/arrowdown2.gif) = no-repeat 0px 0px; LEFT: 0px; POSITION: absolute; TOP: 16px } * HTML .arrows .downarrow { BACKGROUND: = url(http://www.wired.com/images/comments/arrowdowngray2.gif) no-repeat = 0px 0px } * HTML .arrows .downarrow { MARGIN-TOP: 2px } .arrows A.uparrow:hover { BACKGROUND: url(http://www.wired.com/images/comments/arrowup2.gif) = no-repeat 0px -14px } .arrows A.vote_up_active { BACKGROUND: url(http://www.wired.com/images/comments/arrowup2.gif) = no-repeat 0px -14px } .arrows A.downarrow:hover { BACKGROUND: url(http://www.wired.com/images/comments/arrowdown2.gif) = no-repeat 0px -14px } .arrows A.vote_down_active { BACKGROUND: url(http://www.wired.com/images/comments/arrowdown2.gif) = no-repeat 0px -14px } * HTML .arrows A.downarrow:hover { MARGIN-TOP: 2px; BACKGROUND: = url(http://www.wired.com/images/comments/arrowdownred2.jpg) no-repeat = 0px 0px } * HTML .arrows A.vote_down_active { MARGIN-TOP: 2px; BACKGROUND: = url(http://www.wired.com/images/comments/arrowdownred2.jpg) no-repeat = 0px 0px } INPUT.reply { DISPLAY: block; FLOAT: right; MARGIN: 0px 5px } .commentMain { MARGIN: -25px 0px 20px 15px; WIDTH: 100%; HEIGHT: auto; WORD-WRAP: = break-word } UNKNOWN { OVERFLOW: hidden; WIDTH: 98% } UNKNOWN { CLEAR: both; FLOAT: left } .commentbody { DISPLAY: block; FONT: 1.2em georgia, "times new roman", serif; WIDTH: = 90% } .commentbodyFull { DISPLAY: block; FONT: 1.2em georgia, "times new roman", serif; WIDTH: = 90% } #allComments .commentbody { WIDTH: 85% } #allComments .commentbodyFull { WIDTH: 85% } .commentbodyFull { DISPLAY: none } .triangle { BACKGROUND: url(/images/comments/tri_closed.gif) no-repeat 0px 0px; = MARGIN-LEFT: 10px; WIDTH: 9px; CURSOR: pointer; HEIGHT: 9px } .open_tri { DISPLAY: block; LEFT: 15px; FLOAT: right; BOTTOM: 12px; POSITION: = relative } .triangle { DISPLAY: block; LEFT: 15px; FLOAT: right; BOTTOM: 12px; POSITION: = relative } .commentAuthor { FONT: 11px arial, helvetica, sans-serif; COLOR: #666 } .commentOptions { FONT: 11px arial, helvetica, sans-serif; COLOR: #666 } .commentAuthor { MARGIN: 0px 0px 3px } .commentOptions { MARGIN: 3px 0px 0px } * HTML .commentOptions { POSITION: relative; TOP: -15px } .commentAuthor P { FLOAT: left } .commentAuthor SPAN { DISPLAY: inline; MARGIN: 0px 4px } .commentOptions SPAN { DISPLAY: block; FLOAT: left } .commentOptions A { DISPLAY: block; FLOAT: left } .commentOptions A { MARGIN: 0px 3px } * HTML .commentOptions A { MARGIN: 0px 0px 0px 2px } .commentOptions { MARGIN-LEFT: -3px } .comment_form { CLEAR: both; DISPLAY: block; FLOAT: left; MARGIN: 0px 0px 10px; WIDTH: = 100%! important } #article .commentPage { FONT-SIZE: 1.2em } .posting { FONT: 11px Arial, helvetica, sans-serif; COLOR: #007ca5 } .commentPage TABLE { WIDTH: 500px } #reddit_export_wrapper_contents { BACKGROUND: #ccc; FONT: 11px Arial, helvetica, sans-serif } #reddit_export_wrapper_contents H3 { FONT: bold 11px verdana, sans-serif; TEXT-TRANSFORM: uppercase } #outerWrapper { WIDTH: 628px; HEIGHT: auto } .slideshownews #mainColumn #outerWrapper { MARGIN-TOP: 70px } * HTML .slideshownews #mainColumn #outerWrapper { MARGIN-TOP: 20px } * HTML #video_page #mainColumn #outerWrapper { MARGIN-TOP: 20px } * + HTML .slideshownews #mainColumn #outerWrapper { MARGIN-TOP: 20px } * + HTML #video_page #mainColumn #outerWrapper { MARGIN-TOP: 20px } #video_page #mainColumn #outerWrapper { MARGIN-TOP: 70px } #video_page #outerWrapper { WIDTH: 400px } A.back { DISPLAY: block } #foot_row1 { POSITION: static } #foot_row1 SPAN.pad { POSITION: static } #foot_row1 .pad { =09 } ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: image/png Content-Transfer-Encoding: base64 Content-Location: http://www.reddit.com/static/blog_head.png iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAANbY1E9YMgAAABl0RVh0 U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAADqUExURSkvNj48OkZKTkdHR0pOU1JbZVNc ZVVeZ1ZaXlthZl1ka19qdV9semBdW2Jqc2NteGRlZ2RqbWVxfWdzgGl1gmprbGxwdm5wcm55hG9+ jHB8iHFwb3d7gHeHmHiImHmKm3uAgHyKmX5+foGBgYiYo4mHhoqNjYydro2htI6fsJCjuJqvxZ+e naO4zqWjoaa5zqa7yaipqqzD163Bya6urq+tq7HI3bHI37Szsr67ub/W7sLa88Xd9snj/svLy8/M ydLS0tPRz9nX1d7c2vDw8PP29Pr39P4QD/4yMP6mpP6ysP7Dwf7OzP7+/q/J5yUAAACpSURBVBjT dc9FEsIAFATRjwV3J7i7W2CA4Ja5/3XYQKWKgl6+XQu+kn+wckSqgVDJhIZ34vNf7CbEBkDG1XrD olmQXGeNDQAZelLpcL2/7Bbd6ZRnCEkcLbUzSfJcsxwTkKw65f365PN651TNQto28nEzaNwepK0N QZJmSUCg7MiRftJH5E4BBGOrxm2lXNlSs44BAebO+Gx/2M/izvnnpZePBqP53u/bF89NNLqtRKbf AAAAAElFTkSuQmCC ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.reddit.com/static/css/reddit.css HTML { HEIGHT: 100% } BODY { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DIV { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DT { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } DD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } UL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } OL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } LI { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } H1 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } H2 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } H3 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } H4 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } H5 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } H6 { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } PRE { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } FORM { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } FIELDSET { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } INPUT { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } P { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } BLOCKQUOTE { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } TH { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } IFRAME { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } TABLE { BORDER-COLLAPSE: collapse } FIELDSET { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } IMG { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; BORDER-RIGHT-WIDTH: 0px } ADDRESS { FONT-WEIGHT: normal; FONT-STYLE: normal } CAPTION { FONT-WEIGHT: normal; FONT-STYLE: normal } CITE { FONT-WEIGHT: normal; FONT-STYLE: normal } CODE { FONT-WEIGHT: normal; FONT-STYLE: normal } DFN { FONT-WEIGHT: normal; FONT-STYLE: normal } EM { FONT-WEIGHT: normal; FONT-STYLE: normal } STRONG { FONT-WEIGHT: normal; FONT-STYLE: normal } TH { FONT-WEIGHT: normal; FONT-STYLE: normal } VAR { FONT-WEIGHT: normal; FONT-STYLE: normal } OL { LIST-STYLE-TYPE: none } UL { LIST-STYLE-TYPE: none } CAPTION { TEXT-ALIGN: left } TH { TEXT-ALIGN: left } H1 { FONT-SIZE: 100% } H2 { FONT-SIZE: 100% } H3 { FONT-SIZE: 100% } H4 { FONT-SIZE: 100% } H5 { FONT-SIZE: 100% } H6 { FONT-SIZE: 100% } Q:unknown { content: '' } Q:unknown { content: '' } BODY { Z-INDEX: 1; FONT: x-small verdana, arial, helvetica, sans-serif; = BACKGROUND-COLOR: white } TEXTAREA { FONT: small verdana, arial, helvetica, sans-serif } INPUT[type=3Dhidden] { POSITION: absolute } H1 { FONT-WEIGHT: normal; FONT-SIZE: 18px; MARGIN: 10px 0px } H2 { FONT-SIZE: 13px; COLOR: #369 } H2 A { TEXT-DECORATION: none } H2 A:visited { COLOR: #369 } H2 A:hover { TEXT-DECORATION: underline } H3 { FONT-SIZE: 110% } A IMG { BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: = 0px } A { COLOR: #369; TEXT-DECORATION: none } .rounded { -moz-border-radius: 7px; -webkit-border-radius: 7px; border-radius: 7px } .rounded .morelink { -webkit-border-top-right-radius: 6px; border-top-right-radius: 6px; = -moz-border-radius-topright: 6px } DIV.autosize { WIDTH: 1px } DIV.autosize > DIV { =09 } INPUT.txt { BORDER-RIGHT: #369 1px solid; BORDER-TOP: #369 1px solid; BORDER-LEFT: = #369 1px solid; BORDER-BOTTOM: #369 1px solid; BACKGROUND-COLOR: #f7f7f7 } INPUT[type=3Dcheckbox] { MARGIN-TOP: 0.4em } INPUT[type=3Dradio] { MARGIN-TOP: 0.4em } LABEL.disabled { COLOR: gray } .wrong { FONT-WEIGHT: normal; COLOR: red } .subform INPUT.text { WIDTH: 25em } .subform TEXTAREA.text { WIDTH: 25em } .subform LABEL { MARGIN: 0px 5px } .subform TD { PADDING-RIGHT: 5px; PADDING-LEFT: 0px; PADDING-BOTTOM: 5px; = PADDING-TOP: 0px } .subform TD.nopadding { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .nowrap { WHITE-SPACE: nowrap } .leftpad { PADDING-LEFT: 1em } .nomargin { MARGIN: 0px } .nopadding { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .hover A:hover { TEXT-DECORATION: underline } .selected { FONT-WEIGHT: bold } .flat-list { DISPLAY: inline; LIST-STYLE-TYPE: none } .flat-list LI { DISPLAY: inline } .flat-list FORM { DISPLAY: inline } .flat-list .selected A { COLOR: orangered } .link .flat-list { DISPLAY: block; PADDING-BOTTOM: 1px } .compressed.link .flat-list { DISPLAY: inline-block } UL.flat-vert { TEXT-ALIGN: left } .flat-vert .separator { MARGIN: 0px } .title.flat-vert { FONT-WEIGHT: normal; FONT-SIZE: 18px; MARGIN-BOTTOM: 5px; COLOR: #777; = FONT-FAMILY: arial,verdana,helvetica,sans-serif } .separator { MARGIN: 0px 0.7ex; COLOR: gray } .pref-lang { FONT-WEIGHT: bold } .pref { FONT-WEIGHT: bold } #jumpToContent { FONT-WEIGHT: bold; LEFT: 135px; MARGIN-LEFT: -1000px; POSITION: = absolute; TOP: 25px } #jumpToContent:focus { MARGIN-LEFT: 0px! important } #header { Z-INDEX: 99; BORDER-BOTTOM: #5f99cf 1px solid; POSITION: relative; = BACKGROUND-COLOR: #cee3f8 } #header-img { MARGIN-TOP: 2px; MARGIN-RIGHT: 5px } #header-top { RIGHT: 5px; POSITION: absolute } #header-bottom-left { FONT-SIZE: larger } #header-bottom-right { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; RIGHT: 0px; PADDING-BOTTOM: 4px; = BOTTOM: 0px; PADDING-TOP: 4px; POSITION: absolute; BACKGROUND-COLOR: = #eff7ff; -moz-border-radius-topleft: 7px; = -webkit-border-top-left-radius: 7px; border-top-left-radius: 7px } #mail IMG { POSITION: relative; TOP: 2px } #modmail IMG { MARGIN-TOP: -6px; POSITION: relative; TOP: 4px } .nohavemail#modmail { FILTER: alpha(opacity=3D70); opacity: .7 } .user { COLOR: gray } .pagename { FONT-WEIGHT: bold; FONT-SIZE: 1.2em; LINE-HEIGHT: 100%; MARGIN-RIGHT: = 1ex; FONT-VARIANT: small-caps } .pagename A { COLOR: black } .redditname { =09 } .newpagelink { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px; BACKGROUND-COLOR: #ff9 } .dropdown { DISPLAY: inline; CURSOR: default; POSITION: relative } .inuse.drop-choices { DISPLAY: block } .drop-choices { BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; MARGIN-TOP: = 1px; DISPLAY: none; Z-INDEX: 100; LEFT: 0px; BORDER-LEFT: gray 1px = solid; LINE-HEIGHT: normal; BORDER-BOTTOM: gray 1px solid; WHITE-SPACE: = nowrap; POSITION: absolute; BACKGROUND-COLOR: white } .drop-choices A.choice { PADDING-RIGHT: 3px; DISPLAY: block; PADDING-LEFT: 3px; PADDING-BOTTOM: = 1px; CURSOR: pointer; PADDING-TOP: 2px } .drop-choices A.choice:hover { BACKGROUND-COLOR: #c7def7 } .heavydrop.dropdown .selected { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 23px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 5px; FONT-WEIGHT: bold; BACKGROUND: = url(/static/droparrow.gif) white no-repeat right center; PADDING-BOTTOM: = 2px; BORDER-LEFT: gray 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: gray = 1px solid } .lightdrop.dropdown .selected { PADDING-RIGHT: 21px; BACKGROUND: url(/static/droparrowgray.gif) = no-repeat right center; COLOR: gray; POSITION: relative; = TEXT-DECORATION: underline } .lightdrop.drop-choices { MARGIN-TOP: 2px } .tabdrop.dropdown .selected { BORDER-RIGHT: #5f99cf 1px solid; PADDING-RIGHT: 21px; BORDER-TOP: = #5f99cf 1px solid; PADDING-LEFT: 5px; BACKGROUND: = url(/static/droparrowgray.gif) white no-repeat right center; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 3px; BORDER-LEFT: #5f99cf 1px solid; = COLOR: orangered; PADDING-TOP: 2px; BORDER-BOTTOM: #5f99cf 1px; = POSITION: relative } .tabdrop.dropdown .title.selected { PADDING-BOTTOM: 0px; COLOR: #369; BORDER-TOP-STYLE: none; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: = #eff7ff; BORDER-BOTTOM-STYLE: none } .tabdrop.drop-choices { MARGIN-TOP: 2px } .tabdrop.dropdown-title { DISPLAY: none } .tabmenu { MARGIN-TOP: 5px; DISPLAY: inline-block; WHITE-SPACE: nowrap; = LIST-STYLE-TYPE: none } .tabmenu LI { DISPLAY: inline; FONT-WEIGHT: bold; MARGIN: 0px 3px } .tabmenu LI A { PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 0px; = PADDING-TOP: 2px; BACKGROUND-COLOR: #eff7ff } .tabmenu LI.selected A { BORDER-RIGHT: #5f99cf 1px solid; BORDER-TOP: #5f99cf 1px solid; = Z-INDEX: 100; BORDER-LEFT: #5f99cf 1px solid; COLOR: orangered; = BORDER-BOTTOM: white 1px solid; BACKGROUND-COLOR: white } #search INPUT[type=3Dtext] { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 2px; FONT-SIZE: 18px; PADDING-BOTTOM: 2px; = BORDER-LEFT: gray 1px solid; WIDTH: 295px; PADDING-TOP: 2px; = BORDER-BOTTOM: gray 1px solid } .content { Z-INDEX: 1; MARGIN: 7px 5px 0px } .content .spacer { MARGIN-BOTTOM: 5px } .state-button { DISPLAY: inline } .side { FLOAT: right; MARGIN: 0px 5px; WIDTH: 300px; BACKGROUND-COLOR: white } .side .spacer { MARGIN: 7px 0px 12px } .morelink { BORDER-RIGHT: #c4dbf1 1px solid; BORDER-TOP: #c4dbf1 1px solid; = DISPLAY: block; FONT-WEIGHT: bold; FONT-SIZE: 150%; BACKGROUND: = url(/static/gradient-button.png) white repeat-x left center; = BORDER-LEFT: #c4dbf1 1px solid; LINE-HEIGHT: 29px; BORDER-BOTTOM: = #c4dbf1 1px solid; LETTER-SPACING: -1px; POSITION: relative; HEIGHT: = 29px; TEXT-ALIGN: center; -moz-border-radius-topleft: 6px; = -moz-border-radius-bottomleft: 6px } .morelink:hover { BORDER-LEFT-COLOR: #879eb4; BACKGROUND-IMAGE: = url(/static/gradient-button-hover.png); BORDER-BOTTOM-COLOR: #879eb4; = BORDER-TOP-COLOR: #879eb4; BORDER-RIGHT-COLOR: #879eb4 } .mlh { BORDER-LEFT-COLOR: #879eb4; BACKGROUND-IMAGE: = url(/static/gradient-button-hover.png); BORDER-BOTTOM-COLOR: #879eb4; = BORDER-TOP-COLOR: #879eb4; BORDER-RIGHT-COLOR: #879eb4 } .morelink A { DISPLAY: block; WIDTH: 100%; COLOR: #369 } .morelink:hover A { COLOR: white } .morelink .nub { RIGHT: -1px; BACKGROUND: url(/static/gradient-nub.png) white no-repeat = left center; WIDTH: 24px; POSITION: absolute; TOP: -1px; HEIGHT: 31px } .morelink:hover .nub { BACKGROUND-IMAGE: url(/static/gradient-nub-hover.png) } .mlhn { BACKGROUND-IMAGE: url(/static/gradient-nub-hover.png) } .raisedbox { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 5px; BACKGROUND: #e0e0e0; PADDING-BOTTOM: 5px; = BORDER-LEFT: gray 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: gray 1px = solid } .raisedbox H4 { MARGIN-BOTTOM: 3px } .raisedbox LI { MARGIN-BOTTOM: 2px } .sidebox .spacer { PADDING-RIGHT: 0px; MARGIN-TOP: 10px; PADDING-LEFT: 44px; MIN-HEIGHT: = 41px; BACKGROUND: white no-repeat left top; PADDING-BOTTOM: 0px; = PADDING-TOP: 5px; POSITION: relative } .sidebox .spacer A { DISPLAY: block; LEFT: 0px; WIDTH: 40px; POSITION: absolute; TOP: 0px; = HEIGHT: 40px } .create.sidebox .spacer { BACKGROUND-IMAGE: url(/static/create-a-reddit.png); BACKGROUND-REPEAT: = no-repeat } .gold.sidebox .spacer { BACKGROUND-IMAGE: url(/static/reddit_gold-40.png); BACKGROUND-REPEAT: = no-repeat } .gold.sidebox .morelink { BACKGROUND-POSITION: 0px 0px; BACKGROUND-IMAGE: = url(/static/goldmorelink.png); BORDER-TOP-STYLE: none; = BACKGROUND-REPEAT: no-repeat; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; HEIGHT: 31px; BACKGROUND-COLOR: transparent; = BORDER-BOTTOM-STYLE: none } .gold.sidebox .morelink A { COLOR: #9a7d2e } .gold.sidebox .morelink A:visited { COLOR: #9a7d2e } .gold.sidebox .morelink:hover { BACKGROUND-POSITION: 0px -31px } .gold.sidebox .morelink:hover A { MARGIN-TOP: 1px; COLOR: #ffffff } .gold.sidebox .morelink .nub { DISPLAY: none } .submit.sidebox .spacer { BACKGROUND-IMAGE: url(/static/submit-alien.png); BACKGROUND-REPEAT: = no-repeat } .sidebox .subtitle { FONT-SIZE: 110%; MARGIN-LEFT: 10px; COLOR: dimgray } .infotable { MARGIN-TOP: 5px; MARGIN-BOTTOM: 10px } .infotable .small { FONT-SIZE: smaller } .infotable TD { PADDING-RIGHT: 1em } .infotable A:hover { TEXT-DECORATION: underline } .infotable .state-button A { COLOR: gray; BACKGROUND-COLOR: #f0f0f0 } .infotable .bold { FONT-WEIGHT: bold } .infotable .invalid-user { BACKGROUND-COLOR: pink } .infotable .organic-vote { BORDER-RIGHT: green 1px solid; BORDER-TOP: green 1px solid; = BORDER-LEFT: green 1px solid; BORDER-BOTTOM: green 1px solid } .profile-attr { =09 } .profile-attr .label { FONT-WEIGHT: bold } .profile-attr .value { COLOR: #404040; MARGIN-RIGHT: 5px } .profile-attr .md { BORDER-RIGHT: #d0d0d0 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: = #b2b2b2 1px solid; MARGIN-TOP: 5px; PADDING-LEFT: 10px; PADDING-BOTTOM: = 10px; MARGIN-LEFT: 10px; BORDER-LEFT: #b2b2b2 1px solid; PADDING-TOP: = 10px; BORDER-BOTTOM: #d0d0d0 1px solid } .profile-attr .md UL { FLOAT: none; MARGIN-LEFT: 15px; LIST-STYLE-TYPE: disc } .profile-attr .md P { MARGIN-TOP: 0px } .question { COLOR: red } .question .yes { MARGIN-LEFT: 5px; MARGIN-RIGHT: 3px } .question .no { MARGIN: 0px 3px } .preload { LEFT: -1000px; POSITION: absolute; TOP: -1000px } .arrow { BACKGROUND-POSITION: center center; DISPLAY: block; MARGIN: 2px auto = 0px; WIDTH: 15px; CURSOR: pointer; BACKGROUND-REPEAT: no-repeat; HEIGHT: = 14px } .upmod.arrow { BACKGROUND-IMAGE: url(/static/aupmod.gif) } .downmod.arrow { BACKGROUND-IMAGE: url(/static/adownmod.gif) } .up.arrow { BACKGROUND-IMAGE: url(/static/aupgray.gif) } .down.arrow { BACKGROUND-IMAGE: url(/static/adowngray.gif) } .midcol { BACKGROUND: none transparent scroll repeat 0% 0%; FLOAT: left; = MARGIN-LEFT: 7px; OVERFLOW: hidden; MARGIN-RIGHT: 4px } .entry { MARGIN-LEFT: 3px; OVERFLOW: hidden; opacity: 1 } .domain { FONT-SIZE: x-small; COLOR: #888 } .domain A { COLOR: #888 } .domain A:hover { TEXT-DECORATION: underline } .link-note { FONT-SIZE: x-small; COLOR: #ff4444; BACKGROUND-COLOR: white } .tagline { FONT-SIZE: x-small; COLOR: #888 } .tagline A { COLOR: #369; TEXT-DECORATION: none } .tagline .friend { COLOR: orangered } .tagline .submitter { COLOR: #0055df } .tagline .moderator { COLOR: #228822 } .green { COLOR: #228822 } .tagline .admin { COLOR: #ff0011 } .tagline A.admin.author { FONT-WEIGHT: bold } .tagline A:hover { TEXT-DECORATION: underline } .media-button .option { COLOR: red } .media-button .active.option { PADDING-RIGHT: 15px; BACKGROUND: url(/static/reddit-button-play.png) = no-repeat right center; COLOR: #336699 } .embededmedia { MARGIN-TOP: 5px; MARGIN-LEFT: 60px } .thing .title { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; OVERFLOW: = hidden; COLOR: blue; PADDING-TOP: 0px } .thing .title:visited { COLOR: #551a8b } .thing .click.title { COLOR: #551a8b } .thing .loggedin.title { COLOR: blue } .thing .loggedin.title:visited { COLOR: #551a8b } .thing .click.loggedin.title { COLOR: #551a8b } .thing .click.loggedin.title:visited { COLOR: #551a8b } .sitetable { LIST-STYLE-TYPE: none } .ajaxhook { LEFT: 0px; POSITION: absolute; TOP: -1000px } .nextprev { MARGIN-TOP: 10px; FONT-SIZE: larger; COLOR: gray } .help A.help { COLOR: #808080; TEXT-DECORATION: underline } .help A.open { RIGHT: 0px; MARGIN: 0px 5px 5px 0px; BOTTOM: 0px; POSITION: absolute } .help-cover.help { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: gray 1px = solid; DISPLAY: none; PADDING-LEFT: 10px; FONT-SIZE: 110%; = PADDING-BOTTOM: 10px; OVERFLOW: hidden; BORDER-LEFT: gray 1px solid; = PADDING-TOP: 5px; BORDER-BOTTOM: gray 1px solid; BACKGROUND-COLOR: = #f8f8f8 } .help P { MARGIN: 5px } .help FORM { MARGIN: 5px } .help FORM { DISPLAY: inline } .infotext { BORDER-RIGHT: #369 1px solid; BORDER-TOP: #369 1px solid; BORDER-LEFT: = #369 1px solid; BORDER-BOTTOM: #369 1px solid; BACKGROUND-COLOR: #eff7ff } .infotext P { FONT-SIZE: small; MARGIN: 5px } .wikipage { MARGIN: 15px } .organic-listing { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 0px; MIN-HEIGHT: 50px; PADDING-BOTTOM: 0px; = OVERFLOW: hidden; BORDER-LEFT: gray 1px solid; PADDING-TOP: 0px; = BORDER-BOTTOM: gray 1px solid; POSITION: relative } .organic-listing .link { BACKGROUND-COLOR: #f8f8f8 } .organic-listing .link { PADDING-RIGHT: 7em; PADDING-LEFT: 0px; MARGIN-BOTTOM: 0px; = PADDING-BOTTOM: 10px; PADDING-TOP: 5px } .organic-listing .promotedlink.link { PADDING-RIGHT: 7em; PADDING-LEFT: 0px; MARGIN-BOTTOM: 0px; = PADDING-BOTTOM: 10px; PADDING-TOP: 5px } .organic-listing .nextprev { RIGHT: 0px; MARGIN: 0px; VERTICAL-ALIGN: top; POSITION: absolute; TOP: = 0px } .organic-listing .nextprev IMG { BORDER-RIGHT: #b3b3b3 1px solid; BORDER-TOP: #b3b3b3 1px solid; MARGIN: = 5px 5px 2px 0px; BORDER-LEFT: #b3b3b3 1px solid; BORDER-BOTTOM: #b3b3b3 = 1px solid } .organic-listing .nextprev IMG:hover { BORDER-RIGHT: #336699 1px solid; BORDER-TOP: #336699 1px solid; = BORDER-LEFT: #336699 1px solid; CURSOR: pointer; BORDER-BOTTOM: #336699 = 1px solid } .organic-listing .nextprev IMG:active { MARGIN: 6px 4px 1px 1px } .promotedlink.link { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 5px; OVERFLOW: hidden; = BORDER-LEFT: gray 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: gray 1px = solid; POSITION: relative } .unpaid.promotedlink.link { BACKGROUND-COLOR: #ffc } .unseen.promotedlink.link { BACKGROUND-COLOR: #ffc } .accepted.promotedlink.link { BACKGROUND-COLOR: #9f9 } .rejected.promotedlink.link { BACKGROUND-COLOR: #ff9a9a } .accepted.promotedlink.link { BACKGROUND-COLOR: #9f9 } .pending.promotedlink.link { BACKGROUND-COLOR: #bfc } .promoted.promotedlink.link { BACKGROUND-COLOR: #eff7ff } .finished.promotedlink.link { BACKGROUND-COLOR: #ddd } #promo-form + FORM #img-preview-container { DISPLAY: none } .rejection-form TEXTAREA { WIDTH: 40em; HEIGHT: 10em } .promoted-list { FONT-SIZE: larger } .promoted-list .unpromote-button { DISPLAY: inline } .promoted-list .unpromote-button A { COLOR: gray } .promoted.help-cover { BACKGROUND-COLOR: #eff7ff } .organic-listing .promoted { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BACKGROUND-COLOR: #eff7ff; BORDER-BOTTOM-STYLE: none } .organic-listing .sponsored-tagline { RIGHT: 6.4em } .sponsored-tagline { FONT-WEIGHT: bold; RIGHT: 0px; MARGIN: 0px 5px 5px 0px; COLOR: #808080; = BOTTOM: 0px; POSITION: absolute } .promote-pixel { RIGHT: -1000px; POSITION: absolute; TOP: -1000px } .organic-help-button { PADDING-RIGHT: 0.5ex; PADDING-LEFT: 0.5ex; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .menuarea { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: larger; = PADDING-BOTTOM: 5px; MARGIN: 5px; OVERFLOW: hidden; PADDING-TOP: 5px; = BORDER-BOTTOM: gray 1px dotted } .menuarea .spacer { DISPLAY: inline; MARGIN-RIGHT: 15px } .panestack-title { PADDING-BOTTOM: 3px; MARGIN: 10px 310px 0px 10px; BORDER-BOTTOM: gray = 1px dotted } .panestack-title .title { FONT-WEIGHT: normal; FONT-SIZE: 16px; MARGIN: 10px 0px } .panestack-title A.title-button { FONT-SIZE: 12px; MARGIN-LEFT: 8px } .panestack-title A.gold.title-button { BORDER-RIGHT: #9a7d2e 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #9a7d2e 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 1px; BORDER-LEFT: = #9a7d2e 1px solid; COLOR: #6a4d00; PADDING-TOP: 1px; BORDER-BOTTOM: = #9a7d2e 1px solid; BACKGROUND-COLOR: #fff088; -moz-border-radius: 3px; = -webkit-border-radius: 3px; border-radius: 3px } .commentarea H1 { PADDING-BOTTOM: 3px; MARGIN: 10px 310px 0px 10px; BORDER-BOTTOM: gray = 1px dotted } .commentarea .menuarea { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px = 310px 10px 10px; COLOR: gray; BORDER-TOP-STYLE: none; PADDING-TOP: 0px; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } .commentarea > .usertext { MARGIN: 0px 0px 10px 10px; OVERFLOW: auto } .infobar { BORDER-RIGHT: orange 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: orange = 1px solid; PADDING-LEFT: 10px; FONT-SIZE: small; PADDING-BOTTOM: 5px; = MARGIN: 5px 305px 5px 0px; BORDER-LEFT: orange 1px solid; PADDING-TOP: = 5px; BORDER-BOTTOM: orange 1px solid; BACKGROUND-COLOR: #f6e69f } .infobar IMG { DISPLAY: inline; VERTICAL-ALIGN: middle } .red.infobar { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BORDER-LEFT-COLOR: red; = BORDER-BOTTOM-COLOR: red; PADDING-BOTTOM: 5px; BORDER-TOP-COLOR: red; = PADDING-TOP: 5px; BACKGROUND-COLOR: #ffaeae; BORDER-RIGHT-COLOR: red } .red.infobar IMG { FLOAT: left; MARGIN-RIGHT: 5px } .mellow.infobar { BORDER-RIGHT: #bfe0ff 1px solid; BORDER-TOP: #bfe0ff 1px solid; = BORDER-LEFT: #bfe0ff 1px solid; BORDER-BOTTOM: #bfe0ff 1px solid; = BACKGROUND-COLOR: #eff8ff } .md { FONT-SIZE: small; MAX-WIDTH: 60em; OVERFLOW: auto } .md P { MARGIN: 5px 0px } .md H1 { MARGIN: 5px 0px } .md H1 { FONT-WEIGHT: normal; FONT-SIZE: 100% } .md > * { MARGIN-BOTTOM: 0px } .md STRONG { FONT-WEIGHT: bold } .md EM { FONT-STYLE: italic } .md STRONG EM { FONT-WEIGHT: bold; FONT-STYLE: italic } .md IMG { DISPLAY: none } .md OL { MARGIN: 10px 2em } .md UL { MARGIN: 10px 2em } .md UL { LIST-STYLE-POSITION: outside; LIST-STYLE-TYPE: disc } .md OL { LIST-STYLE-POSITION: outside; LIST-STYLE-TYPE: decimal } .md PRE { MARGIN: 10px } .md BLOCKQUOTE { PADDING-LEFT: 4px; MARGIN: 5px 15px 5px 5px; BORDER-LEFT: #369 2px = solid } .help BLOCKQUOTE { PADDING-LEFT: 4px; MARGIN: 5px 15px 5px 5px; BORDER-LEFT: #369 2px = solid } .md TD { BORDER-RIGHT: #eee 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #eee 1px = solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 1px; BORDER-LEFT: #eee 1px = solid; PADDING-TOP: 1px; BORDER-BOTTOM: #eee 1px solid } .md TH { BORDER-RIGHT: #eee 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: #eee 1px = solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 1px; BORDER-LEFT: #eee 1px = solid; PADDING-TOP: 1px; BORDER-BOTTOM: #eee 1px solid } .md TH { FONT-WEIGHT: bold } .md TABLE { MARGIN: 5px 10px } .md CENTER { TEXT-ALIGN: left } A.star { COLOR: #ff8b60; TEXT-DECORATION: none } .odd { =09 } .even { =09 } .entry .buttons LI { PADDING-RIGHT: 4px; DISPLAY: inline; BORDER-TOP-STYLE: none; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } .entry .buttons LI + LI { PADDING-LEFT: 4px } .entry .buttons LI.stamp + LI.stamp { MARGIN-LEFT: 4px } .entry .buttons LI A { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; COLOR: #888; PADDING-TOP: 0px } .entry .buttons LI A.nonbutton { FONT-WEIGHT: normal; COLOR: #369 } .entry .buttons A:hover { TEXT-DECORATION: underline } .toggle .error { FONT-SIZE: x-small } .toggle .option { DISPLAY: none } .toggle .active.option { DISPLAY: inline } .thing .stub { DISPLAY: none } .last-clicked.link { BORDER-RIGHT: gray 1px dashed; BORDER-TOP: gray 1px dashed; = BORDER-LEFT: gray 1px dashed; BORDER-BOTTOM: gray 1px dashed } .link { PADDING-LEFT: 3px; MARGIN: 0px 0px 8px } .link .score { COLOR: #c6c6c6; TEXT-ALIGN: center } .link .title { FONT-WEIGHT: normal; FONT-SIZE: medium; MARGIN-BOTTOM: 1px } .link .child H3 { FONT-SIZE: medium; MARGIN: 15px; TEXT-TRANSFORM: none } .rank { OVERFLOW: hidden } .link .midcol { FONT-WEIGHT: bold; FONT-SIZE: small } .link .likes.score { COLOR: #ff8b60 } .link .dislikes.score { COLOR: #9494ff } .link .rank { MARGIN-TOP: 15px; FONT-SIZE: medium; FLOAT: left; COLOR: #c6c6c6; = FONT-FAMILY: arial; TEXT-ALIGN: right } .compressed { MARGIN-BOTTOM: 5px } .compressed .rank { MARGIN-TOP: 10px } .compressed .title { MARGIN: -2px 0px 3px } .compressed .score { COLOR: #888888 } .compressed .score-placeholder { HEIGHT: 3px } .compressed .subreddit { FONT-WEIGHT: bold } .compressed .tagline { DISPLAY: inline; MARGIN-RIGHT: 12px } .compressed .expando-button { DISPLAY: none } .likes.score { DISPLAY: none } .dislikes.score { DISPLAY: none } .likes .score { DISPLAY: none } .dislikes .score { DISPLAY: none } .likes .likes.score { DISPLAY: inline } .dislikes .dislikes.score { DISPLAY: inline } .likes DIV.likes.score { DISPLAY: block } .dislikes DIV.dislikes.score { DISPLAY: block } .warm-entry .rank { COLOR: #eda179 } .hot-entry .rank { COLOR: #e47234 } .cool-entry .rank { COLOR: #a5abfb } .cold-entry .rank { COLOR: #4959f7 } .gadget { FONT-SIZE: x-small } .gadget .midcol { MARGIN: 0px; WIDTH: 15px } .gadget .reddit-link-end { CLEAR: left; PADDING-TOP: 10px } .gadget .click-gadget { FONT-SIZE: small } .gadget SMALL { COLOR: gray } .gadget .reddit-entry { MARGIN-LEFT: 20px } .gadget .right { TEXT-ALIGN: right } .comment { MARGIN-LEFT: 10px } .comment .edit-body { DISPLAY: none; VISIBILITY: hidden } .comment .midcol { MARGIN-LEFT: 0px } .comment .title { MARGIN-TOP: 10px; FONT-SIZE: small } .comment .midcol { WIDTH: 15px } .comment .author { FONT-WEIGHT: bold } .comment .collapsed { PADDING-LEFT: 17px; FONT-SIZE: x-small; PADDING-BOTTOM: 10px; COLOR: = gray; FONT-STYLE: italic } .comment .collapsed A { COLOR: gray } .comment .expand { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = MARGIN-LEFT: 5px; MARGIN-RIGHT: 5px; PADDING-TOP: 1px; FONT-STYLE: = normal } .comment .expand:hover { COLOR: white; BACKGROUND-COLOR: #369; TEXT-DECORATION: none } .comment .score { FONT-SIZE: x-small } .comment .child { MARGIN-TOP: 10px; MARGIN-LEFT: 15px; BORDER-LEFT: #ddf 1px dotted } TEXTAREA.gray { COLOR: gray } .deepthread { PADDING-RIGHT: 30px; BACKGROUND: url(/static/continue-thread.png) = no-repeat right center } .deepthread A { FONT-SIZE: larger; COLOR: #336699 } .deepthread A:hover { TEXT-DECORATION: underline } .morecomments { FONT-SIZE: larger } .morecomments A { COLOR: #336699 } .morecomments A:hover { TEXT-DECORATION: underline } .morecomments .gray { FONT-WEIGHT: normal; COLOR: gray } .expand-btn { DISPLAY: inline-block; FONT-SIZE: smaller; MARGIN: 4px 5px 0px } .message { PADDING-RIGHT: 7px; PADDING-LEFT: 7px; PADDING-BOTTOM: 7px; MARGIN: = 10px 10px 20px 5px; PADDING-TOP: 7px } .focal.message > .entry .md { BACKGROUND-COLOR: #ffffcc } .message .collapsed .head { COLOR: #888888; FONT-STYLE: italic } .message-parent.message .tagline { COLOR: #485 } .message-reply.message .tagline { COLOR: #485 } .message-parent.message > .entry .noncollapsed { COLOR: #485 } .message-reply.message > .entry .noncollapsed { COLOR: #485 } .recipient.message > .entry .noncollapsed { COLOR: black } .recipient.message-reply.message > .entry .head { FONT-WEIGHT: bold; COLOR: black } .recipient.message-parent.message > .entry .head { FONT-WEIGHT: bold; COLOR: black } .new.message > .entry .head { FONT-WEIGHT: bold; COLOR: orangered } .new.message > .entry { BORDER-RIGHT: #e9e9e9 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: = #e9e9e9 1px solid; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; BORDER-LEFT: = #e9e9e9 1px solid; PADDING-TOP: 6px; BORDER-BOTTOM: #e9e9e9 1px solid; = BACKGROUND-COLOR: #f7f7f7 } .new.message .unread { DISPLAY: none } .message .child .message { MARGIN-TOP: 10px; MARGIN-LEFT: 12px } .message .child .usertext { MARGIN-TOP: 10px; MARGIN-LEFT: 12px } .was-comment.message .child .message { MARGIN-TOP: 0px; MARGIN-LEFT: 0px } .was-comment.message .child .usertext { MARGIN-TOP: 0px; MARGIN-LEFT: 0px } .message .expand { DISPLAY: none } .message .entry { MARGIN-LEFT: 0px } .message-parent.message .expand { DISPLAY: inline } .message-parent.message .child { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .message-reply.message .child { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .message-parent.message .child .message { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .message-reply.message .child .message { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .message-parent.message .subject { MARGIN-BOTTOM: 10px } .message-parent.message .message .subject { DISPLAY: none } .message-reply.message .subject { DISPLAY: none } .message-reply.message .entry { PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN-LEFT: 10px; = BORDER-LEFT: #e7e7e7 2px dashed } .message-parent.message .entry { PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; MARGIN-LEFT: 10px; = BORDER-LEFT: #e7e7e7 2px dashed } .message .buttons { MARGIN-LEFT: 15px } .message .md { MARGIN-LEFT: 15px } .message .entry .parent { BORDER-RIGHT: #336699 1px solid; BORDER-TOP: #336699 1px solid; = MAX-WIDTH: 60em; MARGIN: 3px 10px; BORDER-LEFT: #336699 1px solid; = BORDER-BOTTOM: #336699 1px solid } .message .subject .correspondent { BORDER-RIGHT: #336699 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #336699 1px solid; DISPLAY: inline-block; PADDING-LEFT: 5px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #336699 1px solid; COLOR: #336699; = MARGIN-RIGHT: 10px; PADDING-TOP: 2px; BORDER-BOTTOM: #336699 1px solid; = BACKGROUND-COLOR: #eff7ff } .message .subject .title { FONT-WEIGHT: normal; MARGIN-LEFT: 10px; FONT-STYLE: italic } .message .parent-link { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; MARGIN-LEFT: 12px; PADDING-TOP: 0px } .was-comment.message .midcol { MARGIN-LEFT: 0px } .was-comment.message .buttons { MARGIN-LEFT: 0px } .was-comment.message .parent-link { MARGIN-LEFT: 0px } .was-comment.message .md { MARGIN-LEFT: 2px } .message .subject { FONT-WEIGHT: bold; FONT-SIZE: larger } .clippy IMG { FLOAT: left } .clippy-bubble { BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 7px; BORDER-TOP: black = 1px solid; PADDING-LEFT: 7px; FLOAT: left; MARGIN-BOTTOM: 15px; = PADDING-BOTTOM: 7px; MARGIN-LEFT: 5px; BORDER-LEFT: black 1px solid; = WIDTH: 350px; PADDING-TOP: 7px; BORDER-BOTTOM: black 1px solid; = BACKGROUND-COLOR: #fffdd7; -moz-border-radius: 5px; = -webkit-border-radius: 5px; border-radius: 5px } .clippy-headline { FONT-WEIGHT: bold; MARGIN-BOTTOM: 0.5em } .clippy-bubble UL { PADDING-LEFT: 15px; LIST-STYLE-IMAGE: url(/static/clippy-bullet.png); = LIST-STYLE-TYPE: disc } .clippy-bubble LI { MARGIN-TOP: 0.5em } .subreddit { MARGIN-BOTTOM: 10px } .subreddit P { MARGIN-TOP: 0px; MARGIN-BOTTOM: 1px } .subreddit .description { FONT-SIZE: small; MAX-WIDTH: 60em } .subreddit .key { DISPLAY: block } .subreddit .title { FONT-SIZE: medium; MARGIN-RIGHT: 5px } .subreddit .midcol { MARGIN-TOP: 5px; MARGIN-RIGHT: 5px; TEXT-ALIGN: right } .fancy-toggle-button { DISPLAY: block; MARGIN-BOTTOM: 5px } .fancy-toggle-button .active { BORDER-RIGHT: #444 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: #444 1px = solid; PADDING-LEFT: 6px; FONT-WEIGHT: bold; FONT-SIZE: 10px; = BACKGROUND: white repeat-x left center; PADDING-BOTTOM: 1px; = BORDER-LEFT: #444 1px solid; COLOR: white; LINE-HEIGHT: 20px; = PADDING-TOP: 1px; BORDER-BOTTOM: #444 1px solid; -moz-border-radius: = 3px; -webkit-border-radius: 3px; border-radius: 3px } .fancy-toggle-button .remove { BACKGROUND-IMAGE: url(/static/bg-button-remove.png) } .fancy-toggle-button .add { BACKGROUND-IMAGE: url(/static/bg-button-add.png) } .border.commentbody { PADDING-LEFT: 5px; BACKGROUND-COLOR: #ffc } .grayed.commentbody { PADDING-LEFT: 5px; COLOR: gray; BACKGROUND-COLOR: #e0e0e0 } .fixedwidth { FLOAT: left; WIDTH: 100px; HEIGHT: 0px } .clearleft { CLEAR: left; HEIGHT: 0px } .clear { CLEAR: both } .preftable.sharetable { MARGIN-LEFT: 20px } .preftable.sharetable TH { PADDING-BOTTOM: 5px; PADDING-TOP: 5px } .preftable.sharetable BUTTON { MARGIN-TOP: 10px } .widget-preview.preftable { FONT-SIZE: smaller } .widget-preview.preftable INPUT[type=3D'text'] { WIDTH: 150px } .preftable #css-options INPUT[type=3D'text'] { MARGIN-LEFT: 0px; WIDTH: 6em } .share-summary { MARGIN-TOP: 10px; WIDTH: 95% } .share-summary .head TD { FONT-SIZE: large; WIDTH: 50%; TEXT-ALIGN: center } .share-summary TD { VERTICAL-ALIGN: top } .share-summary > TBODY > TR > TD { PADDING-LEFT: 10px; PADDING-BOTTOM: 10px } .share-summary TH { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px; BORDER-BOTTOM: #000 1px solid } .sponsored .entry { MARGIN-RIGHT: 20px } .sponsored .titlerow { BORDER-RIGHT: #e0e0e0 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: = #bcbcbc 1px solid; PADDING-LEFT: 10px; BACKGROUND: #fcfcfc; = PADDING-BOTTOM: 10px; BORDER-LEFT: #bcbcbc 1px solid; PADDING-TOP: 10px; = BORDER-BOTTOM: #e0e0e0 1px solid } .footer-parent { CLEAR: both; PADDING-TOP: 40px; TEXT-ALIGN: center } .footer { BORDER-RIGHT: #f0f0f0 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #f0f0f0 1px solid; DISPLAY: inline-block; PADDING-LEFT: 5px; FONT-SIZE: = larger; PADDING-BOTTOM: 5px; MARGIN: 15px; BORDER-LEFT: #f0f0f0 1px = solid; COLOR: gray; PADDING-TOP: 5px; BORDER-BOTTOM: #f0f0f0 1px solid } .footer .col { PADDING-LEFT: 10px; FLOAT: left; MARGIN: 10px; BORDER-LEFT: #e0e0e0 1px = solid; HEIGHT: 150px } .footer .col:first-child { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } .notes-button { MARGIN-TOP: 3px } .notes-status { FONT-SIZE: larger } .server-status { WIDTH: 300px } .server-status TABLE { BORDER-RIGHT: #e0e0e0 1px solid; BORDER-TOP: #bcbcbc 1px solid; = FONT-SIZE: xx-small; MARGIN-BOTTOM: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: = #bcbcbc 1px solid; WIDTH: 290px; BORDER-BOTTOM: #e0e0e0 1px solid } .server-status TD { PADDING-RIGHT: 2px; PADDING-LEFT: 2px } .server-status .bar { HEIGHT: 5px; BACKGROUND-COLOR: blue } .load0 { BACKGROUND-COLOR: #ffffff } .load1 { BACKGROUND-COLOR: #f0f5ff } .load2 { BACKGROUND-COLOR: #e2ecff } .load3 { BACKGROUND-COLOR: #d6f5cb } .load4 { BACKGROUND-COLOR: #caff98 } .load5 { BACKGROUND-COLOR: #e4f484 } .load6 { BACKGROUND-COLOR: #ffea71 } .load7 { BACKGROUND-COLOR: #ffdb81 } .load8 { BACKGROUND-COLOR: #ff9191 } .load9 { COLOR: #ffffff; BACKGROUND-COLOR: #ff0000 } .server-status TR.down > * { BACKGROUND-COLOR: #c0c0c0; TEXT-DECORATION: line-through } .server-status TH { PADDING-RIGHT: 2px; FONT-WEIGHT: bold } .server-status TR.title-region { CURSOR: pointer } .server-status TR.title-region:hover > TD { TEXT-DECORATION: underline } .server-status TR.title-region:hover > TH { TEXT-DECORATION: underline } .server-status TR.empty.title-region { CURSOR: default; opacity: 0.7 } .server-status TR.empty.title-region:hover > TD { TEXT-DECORATION: none } .server-status TR.empty.title-region:hover > TH { TEXT-DECORATION: none } .server-status .pegged { FONT-WEIGHT: bold; COLOR: #ffffff; BACKGROUND-COLOR: red } .server-status .membar { BORDER-RIGHT: white 1px solid; BORDER-TOP: white 1px solid; = BORDER-LEFT: white 1px solid; BORDER-BOTTOM: white 1px solid; POSITION: = relative; HEIGHT: 11px; BACKGROUND-COLOR: #6699ff } .server-status .membar SPAN { FONT-SIZE: smaller; POSITION: absolute } .server-status .cpu50 { BORDER-RIGHT: white 1px solid; BORDER-TOP: white 1px solid; = BORDER-LEFT: white 1px solid; BORDER-BOTTOM: white 1px; HEIGHT: 5px; = BACKGROUND-COLOR: green } .server-status .cpu300 { BORDER-RIGHT: white 1px solid; BORDER-TOP: white 1px solid; = BORDER-LEFT: white 1px solid; BORDER-BOTTOM: white 1px solid; HEIGHT: = 5px; BACKGROUND-COLOR: red } .orangered { COLOR: orangered } .logout { DISPLAY: inline } .login-form-side { BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; BORDER-LEFT: = gray 1px solid; BORDER-BOTTOM: gray 1px solid } .login-form-side INPUT { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; MARGIN: 5px 0px 0px 5px; = BORDER-LEFT: gray 1px solid; WIDTH: 138px; PADDING-TOP: 1px; = BORDER-BOTTOM: gray 1px solid; TOP: 5px; HEIGHT: 17px } .login-form-side .error { MARGIN: 5px } #remember-me { MARGIN: 5px } #rem-login-main { WIDTH: auto; BORDER-TOP-STYLE: none; MARGIN-RIGHT: 5px; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; POSITION: static; = HEIGHT: auto; BORDER-BOTTOM-STYLE: none } .login-form-side LABEL { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 2px; = MARGIN-RIGHT: 5px; PADDING-TOP: 2px; WHITE-SPACE: nowrap } .login-form-side BUTTON { FLOAT: right } .status { FONT-SIZE: small; MARGIN-LEFT: 5px; COLOR: red } .error { FONT-SIZE: small; MARGIN: 5px; COLOR: red } .red { COLOR: red } .buygold { FONT-WEIGHT: bold; COLOR: #9a7d2e } .line-through { TEXT-DECORATION: line-through } #noresults { MARGIN-RIGHT: 310px } #ad-frame { BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: = 0px; OVERFLOW: hidden; WIDTH: 300px; HEIGHT: 280px; BORDER-RIGHT-WIDTH: = 0px } #searchmenu { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 10px 0px 0px; PADDING-TOP: 2px; BORDER-BOTTOM: #369 2px solid; = BACKGROUND-COLOR: whitesmoke } #searchmenu .searchlabel { PADDING-RIGHT: 15px; PADDING-LEFT: 0px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; COLOR: #369; PADDING-TOP: 2px; BACKGROUND-COLOR: = white } #searchmenu .searchtime { DISPLAY: inline; FONT-WEIGHT: bold; WIDTH: 305px } .searchparams { MARGIN: 5px 20px } .searchparams .labels { MARGIN-LEFT: 10px; TEXT-ALIGN: right } .searchpane { MARGIN: 5px 305px 5px 0px } .searchpane #search INPUT[type=3Dtext] { =09 } .search-summary { FLOAT: right; MARGIN: 6px 8px 0px 0px; TEXT-ALIGN: right } .search-summary .result-count { FONT-WEIGHT: bold } .searchfail { FONT-SIZE: larger; COLOR: #c00000; LINE-HEIGHT: 2em } .searchfail A { COLOR: red; TEXT-DECORATION: underline } .legal { MARGIN-TOP: 20px; FONT-SIZE: small; COLOR: #808080; FONT-FAMILY: serif } .legal A { TEXT-DECORATION: underline } .divide { BORDER-RIGHT: #d3d3d3 2px solid } .loginform { PADDING-RIGHT: 15px; PADDING-LEFT: 15px; FLOAT: left; WIDTH: 45% } .loginform H3 { MARGIN-TOP: 10px; FONT-WEIGHT: bold; FONT-SIZE: large; MARGIN-BOTTOM: = 0px; COLOR: #404040; FONT-VARIANT: small-caps } .loginform P { MARGIN-BOTTOM: 20px; COLOR: #606060; TEXT-ALIGN: left } .loginform LABEL { DISPLAY: block; FONT-WEIGHT: bold; COLOR: #606060 } .loginform .remember { DISPLAY: inline; MARGIN-LEFT: 5px } .loginform UL { MARGIN: 5px } .loginform LI { MARGIN-TOP: 5px } .loginform P .btn { MARGIN-TOP: 5px } .loginform INPUT.logtxt { WIDTH: 125px } .loginform INPUT[type=3Dtext] { BORDER-RIGHT: #a0a0a0 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #a0a0a0 1px solid; MARGIN-TOP: 2px; PADDING-LEFT: 1px; MARGIN-BOTTOM: = 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: #a0a0a0 1px solid; WIDTH: 125px; = PADDING-TOP: 1px; BORDER-BOTTOM: #a0a0a0 1px solid } .loginform INPUT[type=3Dpassword] { BORDER-RIGHT: #a0a0a0 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #a0a0a0 1px solid; MARGIN-TOP: 2px; PADDING-LEFT: 1px; MARGIN-BOTTOM: = 2px; PADDING-BOTTOM: 1px; BORDER-LEFT: #a0a0a0 1px solid; WIDTH: 125px; = PADDING-TOP: 1px; BORDER-BOTTOM: #a0a0a0 1px solid } .loginform #captcha { WIDTH: 250px } #passform H1 { MARGIN-BOTTOM: 0px } #passform P { FONT-SIZE: small; MARGIN-BOTTOM: 5px } .cover { Z-INDEX: 1000; FILTER: alpha(opacity=3D70); LEFT: 0px; WIDTH: 100%; = POSITION: fixed; TOP: 0px; HEIGHT: 100%; BACKGROUND-COLOR: gray; = opacity: .7 } .popup { BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #b2b2b2 = 1px solid; PADDING-LEFT: 10px; Z-INDEX: 1001; LEFT: 10%; PADDING-BOTTOM: = 10px; BORDER-LEFT: #b2b2b2 1px solid; WIDTH: 80%; PADDING-TOP: 10px; = BORDER-BOTTOM: black 1px solid; POSITION: fixed; TOP: 40px; = BACKGROUND-COLOR: white; TEXT-ALIGN: left } .popup H1 { FONT-WEIGHT: normal; FONT-SIZE: large; COLOR: orangered; TEXT-ALIGN: = center } .popup H2 { MARGIN-TOP: 0px; FONT-WEIGHT: normal; FONT-SIZE: small; COLOR: black; = TEXT-ALIGN: center } .usertable { MARGIN-LEFT: 10px } .usertable { FONT-SIZE: larger } .usertable TD { PADDING-RIGHT: 0.7em; PADDING-LEFT: 0.7em; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .usertable TH { PADDING-RIGHT: 0.7em; PADDING-LEFT: 0.7em; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .usertable { WHITE-SPACE: nowrap } .aboutpage { MARGIN-RIGHT: 320px } .aboutpage P { MARGIN: 5px } .aboutpage H1 { MARGIN: 10px } .aboutpage H2 { MARGIN: 10px } .aboutpage .usertable { WIDTH: 45% } .little A { FONT-SIZE: x-small } .oldbylink A { MARGIN: 2px; COLOR: gray; BACKGROUND-COLOR: #f0f0f0 } .error-log { CLEAR: both } .error-log A:hover { TEXT-DECORATION: underline } .error-log .rest { DISPLAY: none } .error-log:first-child .rest { DISPLAY: block } .error-log { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #aaa 1px = solid; PADDING-LEFT: 5px; MARGIN-BOTTOM: 10px; PADDING-BOTTOM: 3px; = BORDER-LEFT: #aaa 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #aaa 1px = solid } .error-log .exception { BORDER-RIGHT: #aaa 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #aaa 1px = solid; PADDING-LEFT: 5px; MARGIN-BOTTOM: 10px; PADDING-BOTTOM: 3px; = BORDER-LEFT: #aaa 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #aaa 1px = solid } .error-log .exception { BACKGROUND-COLOR: #f0f0f8 } .error-log .new.exception { BORDER-RIGHT: #ff6600 2px dashed; BORDER-TOP: #ff6600 2px dashed; = BORDER-LEFT: #ff6600 2px dashed; BORDER-BOTTOM: #ff6600 2px dashed } .error-log .severe.exception { BORDER-RIGHT: #ff0000 2px solid; BORDER-TOP: #ff0000 2px solid; = BORDER-LEFT: #ff0000 2px solid; BORDER-BOTTOM: #ff0000 2px solid; = BACKGROUND-COLOR: #ffdfdf } .error-log .interesting.exception { BORDER-RIGHT: black 2px dotted; BORDER-TOP: black 2px dotted; = BORDER-LEFT: black 2px dotted; BORDER-BOTTOM: black 2px dotted; = BACKGROUND-COLOR: #e0e0e8 } .error-log .fixed.exception { BORDER-RIGHT: #008800 1px solid; BORDER-TOP: #008800 1px solid; = BORDER-LEFT: #008800 1px solid; BORDER-BOTTOM: #008800 1px solid; = BACKGROUND-COLOR: #e8f6e8 } .error-log .exception SPAN { FONT-WEIGHT: bold; MARGIN-RIGHT: 5px } .error-log .exception SPAN.normal { DISPLAY: none; MARGIN-RIGHT: 0px } .error-log .exception SPAN.new { COLOR: #ff6600 } .error-log .edit-area LABEL.new { COLOR: #ff6600 } .error-log .exception SPAN.severe { COLOR: #ff0000 } .error-log .edit-area LABEL.severe { COLOR: #ff0000 } .error-log .exception SPAN.interesting { FONT-WEIGHT: normal; FONT-STYLE: italic } .error-log .edit-area LABEL.interesting { FONT-WEIGHT: normal; FONT-STYLE: italic } .error-log .exception SPAN.fixed { COLOR: #008800 } .error-log .edit-area LABEL.fixed { COLOR: #008800 } .error-log .exception-name { MARGIN-RIGHT: 5px } .error-log .nickname { FONT-WEIGHT: bold; FONT-SIZE: larger; COLOR: black } .error-log .fixed.exception .nickname { TEXT-DECORATION: line-through } .error-log A:focus { -moz-outline-style: none } .error-log .edit-area { BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; = BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid; = BACKGROUND-COLOR: #eee } .error-log .edit-area LABEL { MARGIN-RIGHT: 25px } .error-log .edit-area INPUT[type=3Dradio] { MARGIN-RIGHT: 4px } .error-log .edit-area INPUT[type=3Dtext] { WIDTH: 800px } .error-log .edit-area TABLE TD { PADDING-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; = PADDING-TOP: 5px } .error-log .edit-area TABLE TH { PADDING-RIGHT: 0px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; = PADDING-TOP: 5px } .error-log .save-button { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: small; = PADDING-BOTTOM: 0px; MARGIN: 0px 5px 5px 0px; PADDING-TOP: 0px } .error-log .date { FONT-WEIGHT: bold; FONT-SIZE: 150% } .error-log .hexkey { COLOR: #997700 } .error-log .exception-name { FONT-SIZE: larger; COLOR: #000077 } .error-log .frequency { FONT-SIZE: larger; FLOAT: right; COLOR: #886666 } .error-log .occurrences { BORDER-RIGHT: #003300 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #003300 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; MARGIN: 5px = 0px 2px; BORDER-LEFT: #003300 1px solid; PADDING-TOP: 2px; = BORDER-BOTTOM: #003300 1px solid } .error-log .occurrence { COLOR: #003300; MARGIN-RIGHT: 3em; FONT-FAMILY: monospace; WHITE-SPACE: = nowrap } .error-log TABLE.stacktrace TH { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid } .error-log TABLE.stacktrace TD { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid } .error-log TABLE.stacktrace TD { FONT-FAMILY: monospace } .error-log TABLE.stacktrace TD.col-1 { PADDING-RIGHT: 10px; TEXT-ALIGN: right } .error-log .error.logtext { MARGIN: 0px 0px 10px; COLOR: black } .error-log .logtext { BORDER-RIGHT: #555 2px solid; PADDING-RIGHT: 5px; BORDER-TOP: #555 2px = solid; PADDING-LEFT: 5px; FONT-SIZE: small; MARGIN-BOTTOM: 10px; = PADDING-BOTTOM: 5px; BORDER-LEFT: #555 2px solid; PADDING-TOP: 5px; = BORDER-BOTTOM: #555 2px solid; BACKGROUND-COLOR: #eeece6 } .error-log .logtext * { COLOR: black } .error-log .error.logtext .loglevel { COLOR: white; BACKGROUND-COLOR: red } .error-log .warning.logtext .loglevel { BACKGROUND-COLOR: #ff6600 } .error-log .info.logtext .loglevel { BACKGROUND-COLOR: #00bbff } .error-log .debug.logtext .loglevel { BACKGROUND-COLOR: #00ee00 } .error-log .logtext .loglevel { BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: black = 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; BORDER-LEFT: black = 1px solid; MARGIN-RIGHT: 5px; PADDING-TOP: 0px; BORDER-BOTTOM: black 1px = solid } .error-log .logtext TABLE { MARGIN: 8px 5px 2px 0px; FONT-FAMILY: monospace } .error-log .logtext TABLE { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid } .error-log .logtext TABLE TH { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid } .error-log .logtext TABLE TD { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid } .error-log .logtext TABLE TH { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid } .error-log .logtext TABLE TD { BORDER-RIGHT: #aaa 1px solid; BORDER-TOP: #aaa 1px solid; BORDER-LEFT: = #aaa 1px solid; BORDER-BOTTOM: #aaa 1px solid } .error-log .logtext TABLE .occ { TEXT-ALIGN: right } .error-log .logtext TABLE .dotdotdot { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .error-log .logtext TABLE .dotdotdot A { DISPLAY: block; MARGIN: 0px; WIDTH: 100%; HEIGHT: 100%; = BACKGROUND-COLOR: #e0e0e0 } .error-log .logtext TABLE .dotdotdot A:hover { BACKGROUND-COLOR: #bbb; TEXT-DECORATION: none } .error-log .logtext .classification { FONT-WEIGHT: bold; FONT-SIZE: larger } .error-log .logtext .actual-text { MAX-WIDTH: 600px; OVERFLOW: hidden } .error-log .logtext .occ { =09 } .details { FONT-SIZE: x-small; MARGIN-BOTTOM: 10px } .details SPAN { MARGIN: 0px 5px } .details TH { PADDING-RIGHT: 5px; FONT-WEIGHT: bold; TEXT-ALIGN: right } .details TD { VERTICAL-ALIGN: top } .ring { PADDING-RIGHT: 4px! important; PADDING-LEFT: 3px; FONT-WEIGHT: bold; = CURSOR: pointer; COLOR: white; BACKGROUND-COLOR: red; TEXT-ALIGN: center } .vote-note { PADDING-LEFT: 3px; MAX-WIDTH: 150px } .vote-a-notes { COLOR: red } .vote-up { COLOR: orangered } .vote-down { COLOR: #336699 } .vote-invalid { COLOR: #888888! important; FONT-STYLE: italic } .bottommenu { CLEAR: both; FONT-SIZE: smaller; COLOR: gray } .bottommenu A { COLOR: gray; TEXT-DECORATION: underline } .button { MARGIN: 1px; COLOR: gray; BORDER-COLLAPSE: collapse; TEXT-ALIGN: center } .button #cover { POSITION: relative } .button .cover { BACKGROUND: white } .button #popup { BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: #b2b2b2 = 1px solid; PADDING-LEFT: 1px; Z-INDEX: 1001; BACKGROUND: white; LEFT: = 0px; PADDING-BOTTOM: 1px; MARGIN: 0px; BORDER-LEFT: #b2b2b2 1px solid; = WIDTH: 80%; PADDING-TOP: 1px; BORDER-BOTTOM: black 1px solid; POSITION: = absolute; TOP: 0px } .button .arrow { WIDTH: 15px } .num { FONT-WEIGHT: bold; FONT-SIZE: larger } .thing.button { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .button-body { BACKGROUND-COLOR: transparent } .button .blog { BORDER-RIGHT: #c7def7 1px solid; BORDER-TOP: #c7def7 1px solid; MARGIN: = 0px; BORDER-LEFT: #c7def7 1px solid; COLOR: gray; BORDER-BOTTOM: #c7def7 = 1px solid; BACKGROUND-COLOR: white; TEXT-ALIGN: center; = -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px } .button .blog .r { COLOR: gray } .button .blog .score { WHITE-SPACE: nowrap } .button { COLOR: #369 } .button A:hover { TEXT-DECORATION: underline } .button .blog1 { FONT-SIZE: x-small } .button .blog1 .arrow { FLOAT: left; MARGIN-LEFT: 2px; MARGIN-RIGHT: 2px } .button .blog1 .headimgcell { FLOAT: left; WIDTH: 18px; BACKGROUND-COLOR: #c7def7 } .button .blog1 .score { MARGIN-TOP: 2px; MARGIN-RIGHT: 5px } .button .blog2 { FONT-SIZE: small } .button .blog2 .arrow { MARGIN-LEFT: auto; WIDTH: 15px; MARGIN-RIGHT: auto } .button .blog2 .bottomreddit { FONT-SIZE: small; COLOR: black; BACKGROUND-COLOR: #c7def7 } .button .blog2 .score .submit { DISPLAY: block; FONT-SIZE: x-small; LINE-HEIGHT: 17px } .button .blog3.blog { FONT-SIZE: small; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: transparent; = BORDER-BOTTOM-STYLE: none } .button .blog3 .left { FLOAT: left; WIDTH: 50% } .button .blog2 .arrow { MARGIN-LEFT: auto; WIDTH: 15px; MARGIN-RIGHT: auto } .button .blog3 .right { MARGIN-TOP: 5px; FLOAT: right } .button .blog3 .score .submit { DISPLAY: block; FONT-SIZE: x-small; LINE-HEIGHT: 17px } .blog5 .right { FLOAT: right } .blog5 .left { MARGIN-TOP: 10px; DISPLAY: block; FLOAT: left } .blog5 .clearleft { CLEAR: left } .button .blog5.blog { FONT-SIZE: small; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; TEXT-ALIGN: left; BORDER-BOTTOM-STYLE: none } .blog5 A.bling { FLOAT: left } .blog5 .container { MARGIN-TOP: 2px; MARGIN-LEFT: 35px; HEIGHT: 50px } .blog5 UL { DISPLAY: inline } .blog5 UL A { FONT-WEIGHT: bold; COLOR: #515481; TEXT-DECORATION: underline } .blog5 LI { PADDING-RIGHT: 10px; DISPLAY: inline; PADDING-LEFT: 10px; = PADDING-BOTTOM: 1px; PADDING-TOP: 1px } .blog5 LI.selected { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BORDER-LEFT: = #ccc 1px solid; COLOR: #000; BORDER-BOTTOM: #ccc 1px; BACKGROUND-COLOR: = #f8f8f1 } .blog5 .votes { BORDER-RIGHT: #ccc 1px solid; BORDER-TOP: #ccc 1px solid; BORDER-LEFT: = #ccc 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #ccc 1px solid; HEIGHT: = 25px; BACKGROUND-COLOR: #f8f8f1 } .blog5 .arrow { BACKGROUND-POSITION: left center; DISPLAY: inline; PADDING-LEFT: 20px; = MARGIN-LEFT: 5px; CURSOR: pointer; COLOR: black; MARGIN-RIGHT: 15px; = BACKGROUND-REPEAT: no-repeat } .blog5 .disabled.votes .arrow { COLOR: #888 } .blog5 .arrow:hover { TEXT-DECORATION: none } .blog5 .arrow B { FONT-SIZE: larger } .blog5 .upmod.arrow B { COLOR: #ff8b60 } .blog5 .downmod.arrow B { COLOR: #9494ff } .blog5 .right { FONT-SIZE: medium; MARGIN-RIGHT: 5px; FONT-STYLE: italic } .optional { COLOR: green } .instructions { FONT-SIZE: larger } .instructions H1 { MARGIN-TOP: 20px; MARGIN-BOTTOM: 20px } .instructions H2 { MARGIN-TOP: 20px; MARGIN-BOTTOM: 20px } .instructions H3 { MARGIN-TOP: 20px; MARGIN-BOTTOM: 20px } .instructions P { MAX-WIDTH: 60em; MARGIN: 10px } .instructions PRE { MARGIN: 5px 10px 5px 5px } .instructions IFRAME { MARGIN: 5px 10px 5px 0px } .instructions INPUT { MARGIN: 0px 0.5em } .instructions SELECT { MARGIN: 0px 0.5em } .instructions A:focus { -moz-outline-style: none } .instructions STRONG { FONT-WEIGHT: bold } .instructions .buttons { MAX-WIDTH: 50em; MARGIN-LEFT: 1em } .instructions .buttons LI { MARGIN-TOP: 1em; PADDING-BOTTOM: 1em; BORDER-BOTTOM: #e0e0e0 1px solid } .instructions CODE { PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; FONT-SIZE: = small; MAX-WIDTH: 50em; PADDING-BOTTOM: 10px; MARGIN: 5px; PADDING-TOP: = 10px; FONT-FAMILY: monospace; BACKGROUND-COLOR: #ff9 } .instructions.self-service { MARGIN-BOTTOM: 50px } .instructions.self-service P { MARGIN-LEFT: 20px } .instructions.self-service UL { MARGIN-LEFT: 60px; LIST-STYLE-TYPE: circle } .instructions.self-service LI + LI { PADDING-TOP: 10px } .instructions.self-service LI.done { LIST-STYLE-IMAGE: url(/static/green-check.png); TEXT-DECORATION: = line-through } .instructions.self-service LI.unfinished { FONT-WEIGHT: bold; LIST-STYLE-IMAGE: url(/static/red-arrow.png) } .instructions.feedback DL { MARGIN-LEFT: 20px } .instructions.feedback DT { MARGIN-TOP: 10px } .instructions.feedback DD { PADDING-LEFT: 35px; BACKGROUND: url(/static/red-arrow.png) no-repeat = left bottom } .button-demo A.view-code { FLOAT: right; MARGIN-BOTTOM: 1em } .button-demo A.hide-code { FLOAT: right; MARGIN-BOTTOM: 1em } .button-demo A.hide-code { DISPLAY: none } .instructions .button-demo CODE { DISPLAY: none } .show-demo.button-demo A.view-code { DISPLAY: none } .show-demo.button-demo A.hide-code { DISPLAY: inline } .show-demo.button-demo CODE { DISPLAY: block } #preview { FLOAT: right; MARGIN: 10px; WIDTH: 30em } #preview SPAN { =09 } #preview #previewbox { BORDER-RIGHT: 0.2em dashed; PADDING-RIGHT: 1em; BORDER-TOP: 0.2em = dashed; PADDING-LEFT: 1em; FONT-SIZE: larger; PADDING-BOTTOM: 1em; = BORDER-LEFT: 0.2em dashed; PADDING-TOP: 1em; BORDER-BOTTOM: 0.2em dashed } .bookmarklet { BORDER-RIGHT: #888888 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #888888 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 0px; BORDER-LEFT: = #888888 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #888888 1px solid } .toolbar { FONT-SIZE: small; BORDER-BOTTOM: #336699 1px solid; BACKGROUND-COLOR: = #cee3f8 } .toolbar .left-side { BORDER-RIGHT: #336699 1px solid; FLOAT: left; HEIGHT: 19px; = BACKGROUND-COLOR: #eff7ff } .toolbar .middle-side { CURSOR: pointer; BACKGROUND-COLOR: #eff7ff; TEXT-ALIGN: center } .toolbar .middle-side A { DISPLAY: block; BORDER-LEFT-STYLE: none } .toolbar .middle-side B { DISPLAY: block; BORDER-LEFT-STYLE: none } .toolbar .middle-side INPUT[type=3Dtext] { BORDER-TOP: transparent 1px solid; FONT-SIZE: 14px; MARGIN-LEFT: 2px; = VERTICAL-ALIGN: baseline; WIDTH: 100%; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; HEIGHT: 18px; BORDER-BOTTOM-STYLE: none } .toolbar .middle-side .url { OVERFLOW: hidden } .toolbar .middle-side .domain { FONT-SIZE: small; COLOR: #888 } .toolbar .right-side { MARGIN-TOP: -1px; FLOAT: right; HEIGHT: 19px; BACKGROUND-COLOR: #eff7ff } .toolbar A { PADDING-RIGHT: 4px; DISPLAY: inline-block; PADDING-LEFT: 4px; = FONT-WEIGHT: normal; PADDING-BOTTOM: 0px; OVERFLOW: hidden; BORDER-LEFT: = #336699 1px solid; PADDING-TOP: 1px; WHITE-SPACE: nowrap; HEIGHT: 18px; = outline: none; -moz-outline: none } .toolbar B { PADDING-RIGHT: 4px; DISPLAY: inline-block; PADDING-LEFT: 4px; = FONT-WEIGHT: normal; PADDING-BOTTOM: 0px; OVERFLOW: hidden; BORDER-LEFT: = #336699 1px solid; PADDING-TOP: 1px; WHITE-SPACE: nowrap; HEIGHT: 18px; = outline: none; -moz-outline: none } .toolbar .likes .likes.score { DISPLAY: inline-block } .toolbar .dislikes .dislikes.score { DISPLAY: inline-block } .toolbar A { CURSOR: pointer; COLOR: #336699; TEXT-DECORATION: none } .toolbar .clickable { CURSOR: pointer; COLOR: #336699; TEXT-DECORATION: none } .toolbar .clickable:active { COLOR: orangered! important; BACKGROUND-COLOR: #cee3f8! important } .pushed-button { COLOR: orangered! important; BACKGROUND-COLOR: #cee3f8! important } .toolbar A IMG { VERTICAL-ALIGN: -3px; PADDING-TOP: 3px } toolbar B IMG { VERTICAL-ALIGN: -3px; PADDING-TOP: 3px } .toolbar .content { FLOAT: left; VERTICAL-ALIGN: middle } .toolbar .logo { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; PADDING-BOTTOM: 0px; MARGIN: = 0px; VERTICAL-ALIGN: top; PADDING-TOP: 0px; BORDER-LEFT-STYLE: none } .toolbar .title { PADDING-RIGHT: 1em; DISPLAY: block; PADDING-LEFT: 1em; OVERFLOW: = hidden; COLOR: black } .toolbar .title:active { COLOR: orangered } .toolbar .controls { FLOAT: right } .toolbar .arrow { BACKGROUND-POSITION: left center; DISPLAY: inline-block; PADDING-LEFT: = 16px; MARGIN: 0px; WIDTH: auto } .toolbar .upmod.arrow { BACKGROUND-IMAGE: url(/static/aminiupmod.gif) } .toolbar .downmod.arrow { BACKGROUND-IMAGE: url(/static/aminidownmod.gif) } .toolbar .up.arrow { BACKGROUND-IMAGE: url(/static/aminiupgray.gif) } .toolbar .down.arrow { BACKGROUND-IMAGE: url(/static/aminidowngray.gif) } .toolbar-status-bar { PADDING-RIGHT: 2px; BORDER-TOP: #336699 1px solid; PADDING-LEFT: 2px; = PADDING-BOTTOM: 0px; OVERFLOW: auto; PADDING-TOP: 0px; BORDER-BOTTOM: = #336699 1px solid; BACKGROUND-COLOR: #f6e69f } .toolbar-status-bar .login-arrow-left { BACKGROUND-POSITION: right top; BACKGROUND-IMAGE: = url(/static/tb-loginarrow-left.png); OVERFLOW: auto } .toolbar-status-bar .login-arrow-right { FLOAT: right; MARGIN-RIGHT: 75px } .toolbar-status-bar .login-message { PADDING-RIGHT: 3px; FLOAT: left; BACKGROUND-COLOR: #f6e69f } .tb-comments-panel-toggle { =09 } .comments-panel .infobar { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 7px; MARGIN: = 5px 10px 10px 3px; PADDING-TOP: 3px } .min-body { HEIGHT: 100% } .min-body .content { BORDER-RIGHT: #369 1px solid; MARGIN-TOP: 0px; MIN-HEIGHT: 100%; = MAX-WIDTH: 60em; OVERFLOW: auto } .min-body .content H1 { DISPLAY: inline-block; PADDING-LEFT: 13px; MARGIN-BOTTOM: 15px } .min-body .content H2 { DISPLAY: inline-block; PADDING-LEFT: 13px; MARGIN-BOTTOM: 15px } .min-body .content #noresults { MARGIN: 0px 0px 0px 13px } .starkcomment + .clearleft + .starkcomment { MARGIN-TOP: 10px } .starkcomment .commentbox { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; = MARGIN-LEFT: 0px; COLOR: black; MARGIN-RIGHT: 10px; PADDING-TOP: 5px; = BACKGROUND-COLOR: #f0f0f0 } .starkcomment .tagline { TEXT-ALIGN: right } FORM .blurb { MARGIN-BOTTOM: 5px } FORM .spacer + .spacer { MARGIN: 15px 0px } FORM INPUT[type=3Dcheckbox] { MARGIN: 2px 0.5em 0px 0px } FORM INPUT[type=3Dradio] { MARGIN: 2px 0.5em 0px 0px } .pretty-form { FONT-SIZE: larger; VERTICAL-ALIGN: top } .pretty-form P { MARGIN: 3px } .pretty-form INPUT[type=3Dcheckbox] { MARGIN: 2px 0.5em 0px 0px } .pretty-form INPUT[type=3Dradio] { MARGIN: 2px 0.5em 0px 0px } .pretty-form IMG { MARGIN: 3px 0.5em } .pretty-form INPUT[type=3Dtext] { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; BORDER-LEFT: gray 1px = solid; WIDTH: 300px; PADDING-TOP: 2px; BORDER-BOTTOM: gray 1px solid } .pretty-form TEXTAREA { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; BORDER-LEFT: gray 1px = solid; WIDTH: 300px; PADDING-TOP: 2px; BORDER-BOTTOM: gray 1px solid } .pretty-form INPUT[type=3Dpassword] { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; BORDER-LEFT: gray 1px = solid; WIDTH: 300px; PADDING-TOP: 2px; BORDER-BOTTOM: gray 1px solid } .pretty-form .infobar { MARGIN: 5px; WIDTH: 285px } .pretty-form INPUT[type=3Dtext] { MARGIN: 3px 5px } .pretty-form INPUT[type=3Dfile] { MARGIN: 3px 5px } .pretty-form INPUT[type=3Dpassword] { MARGIN: 3px 5px } .pretty-form SELECT { MARGIN: 3px 5px } .pretty-form B { MARGIN: 3px 5px } .pretty-form TEXTAREA { MARGIN: 3px 5px } .pretty-form BUTTON { MARGIN: 3px 5px } .pretty-form TH { TEXT-ALIGN: right } .delete-field { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; = PADDING-TOP: 10px; BACKGROUND-COLOR: white } .delete-field TD { VERTICAL-ALIGN: top } .short-text.pretty-form INPUT[type=3Dtext] { WIDTH: 2em } .short-text.pretty-form TEXTAREA { WIDTH: 2em } .short-text.pretty-form INPUT[type=3Dpassword] { WIDTH: 2em } #url-field BUTTON { MARGIN: 10px 5px 0px 0px } #url-field .title-status { FONT-SIZE: small; COLOR: red } .opt-form { FONT-SIZE: larger } .opt-form FORM { DISPLAY: inline } .preftable TH { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 10px; VERTICAL-ALIGN: top; PADDING-TOP: 10px; = WHITE-SPACE: nowrap; TEXT-ALIGN: right } .preftable TH LABEL { DISPLAY: block } .preftable.sharetable TH LABEL { DISPLAY: inline } .preftable TH SPAN { DISPLAY: block } .preftable TD.prefright { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 8px; = PADDING-TOP: 8px } .preftable .spacer { MARGIN-BOTTOM: 5px } .preftable .note { VERTICAL-ALIGN: top; WIDTH: 100%; PADDING-TOP: 10px } .over18 BUTTON { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: 0px = 10px; PADDING-TOP: 5px } .entry .buttons LI.nsfw-stamp { BORDER-RIGHT: #ff7777 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: = #ff7777 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 0px; BORDER-LEFT: = #ff7777 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: #ff7777 1px solid; = BACKGROUND-COLOR: white } .nsfw-stamp ACRONYM { COLOR: black; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; TEXT-DECORATION: none; BORDER-BOTTOM-STYLE: = none } .entry .buttons LI.trial-stamp { BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: black = 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 0px; BORDER-LEFT: black = 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: black 1px solid; = BACKGROUND-COLOR: #f6e69f } .entry .buttons LI.reported-stamp { BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: black = 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 0px; BORDER-LEFT: black = 1px solid; PADDING-TOP: 0px; BORDER-BOTTOM: black 1px solid; = BACKGROUND-COLOR: #f6e69f } .entry .buttons LI.trial-stamp .spam { COLOR: #e00 } .entry .buttons LI.trial-stamp .kosher { COLOR: #090 } .suspicious { BACKGROUND-COLOR: #f6e69f } .spam.thing { BACKGROUND-COLOR: #fa8072 } .spam.comment > .child { BACKGROUND-COLOR: white } .spam.message > .child { BACKGROUND-COLOR: white } .spam.comment > .child { PADDING-LEFT: 15px; MARGIN-LEFT: 0px } .spam.message > .child { =09 } .banned-user { FILTER: alpha(opacity=3D70); OVERFLOW: hidden; opacity: .7 } .banned-user .title { TEXT-DECORATION: line-through } .approval-checkmark { MARGIN-LEFT: 3px; VERTICAL-ALIGN: baseline; CURSOR: pointer; HEIGHT: = 0.8em } .little { FONT-SIZE: smaller } .gray { COLOR: gray } .stats { FONT-SIZE: larger; FLOAT: left; MARGIN-RIGHT: 2em; BORDER-COLLAPSE: = collapse } .stats TD.space { WIDTH: 20px } .stats TD.sec { FONT-WEIGHT: normal; FONT-SIZE: 18px; PADDING-BOTTOM: 7px } .stats A { COLOR: #369 } .stats A:hover { TEXT-DECORATION: underline } .stats TD.k { COLOR: gray } .stats TH { FONT-WEIGHT: bold; COLOR: #369; BACKGROUND-COLOR: whitesmoke; = TEXT-ALIGN: left } .stats TD.ri { PADDING-LEFT: 20px; TEXT-ALIGN: right } .thumbnail { FLOAT: left; MARGIN: 0px 5px; OVERFLOW: hidden; WIDTH: 70px } .stylesheet-customize-container { =09 } .stylesheet-customize-container TEXTAREA { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: = 0px; PADDING-TOP: 0px } .stylesheet-customize-container H2 { MARGIN-TOP: 15px; MARGIN-BOTTOM: 10px } .image-upload .new-image { MARGIN-LEFT: 20px } .image-upload SPAN { PADDING-LEFT: 5px } UL#image-preview-list { FONT-SIZE: larger; MARGIN: 20px 320px 20px 20px } UL#image-preview-list LI { FLOAT: left; MARGIN-BOTTOM: 20px; PADDING-BOTTOM: 10px; VERTICAL-ALIGN: = top; WIDTH: 45%; POSITION: relative; HEIGHT: 100px } UL#image-preview-list .preview { DISPLAY: block; FLOAT: left; OVERFLOW: hidden; WIDTH: 100px; = MAX-HEIGHT: 100px; TEXT-ALIGN: center } UL#image-preview-list .preview IMG { MAX-WIDTH: 100px } UL#image-preview-list .description { MARGIN-LEFT: 105px; VERTICAL-ALIGN: top } UL#image-preview-list .description PRE { PADDING-RIGHT: 5px; DISPLAY: inline; PADDING-LEFT: 5px; PADDING-BOTTOM: = 5px; PADDING-TOP: 5px } .sheets { MARGIN-RIGHT: 315px } .sheets .col { FLOAT: left } .sheets .col > DIV { MARGIN: 0px 5px } .sheets .col TEXTAREA { WIDTH: 100% } .sheets .buttons { MARGIN-LEFT: 5px } .sheets .btn { MARGIN-LEFT: 0px; MARGIN-RIGHT: 5px } .sheets .right.btn { FLOAT: right; MARGIN-RIGHT: 3px } #validation-errors { MARGIN-TOP: 10px; MARGIN-LEFT: 40px; LIST-STYLE-TYPE: disc } #validation-errors A { COLOR: red } #validation-errors LI { COLOR: red } .errors H2 { COLOR: red } #validation-errors A:hover { TEXT-DECORATION: underline } #validation-errors PRE { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; COLOR: = black; PADDING-TOP: 10px } #preview-table { PADDING-RIGHT: 15px } #preview-table > TABLE { BORDER-RIGHT: 0.2em dashed; PADDING-RIGHT: 5px; BORDER-TOP: 0.2em = dashed; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: 5px; = BORDER-LEFT: 0.2em dashed; WIDTH: 100%; PADDING-TOP: 5px; BORDER-BOTTOM: = 0.2em dashed } #preview-table > TABLE > TBODY > TR { PADDING-BOTTOM: 10px } #preview-table > TABLE > TBODY > TR > TD { PADDING-RIGHT: 15px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px } #preview-table > TABLE > TBODY > TR > TH { PADDING-RIGHT: 15px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; FONT-SIZE: = larger; PADDING-BOTTOM: 5px; VERTICAL-ALIGN: top; PADDING-TOP: 5px; = TEXT-ALIGN: right } #img-preview-container { BORDER-RIGHT: 0.2em dashed; PADDING-RIGHT: 5px; BORDER-TOP: 0.2em = dashed; PADDING-LEFT: 5px; FLOAT: left; PADDING-BOTTOM: 5px; MARGIN: = 5px; BORDER-LEFT: 0.2em dashed; PADDING-TOP: 5px; BORDER-BOTTOM: 0.2em = dashed } .instructions.private-feeds .prefright { LINE-HEIGHT: 2em } .instructions.private-feeds .feedlink { BORDER-RIGHT: #0000ff 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #0000ff 1px solid; PADDING-LEFT: 22px; FONT-WEIGHT: bold; BACKGROUND: = #336699 no-repeat left top; PADDING-BOTTOM: 2px; BORDER-LEFT: #0000ff = 1px solid; COLOR: white; MARGIN-RIGHT: 5px; PADDING-TOP: 2px; = BORDER-BOTTOM: #0000ff 1px solid } .instructions.private-feeds .rss-link.feedlink { BACKGROUND-IMAGE: url(/static/rss.png) } .instructions.private-feeds .json-link.feedlink { BACKGROUND-IMAGE: url(/static/json.png); COLOR: black; = BACKGROUND-COLOR: #dddddd } .instructions.socialite UL { MAX-WIDTH: 60em; MARGIN: 10px } .instructions.socialite UL > LI { LIST-STYLE-POSITION: inside; LIST-STYLE-TYPE: disc } .instructions.socialite HR { BORDER-TOP: #c6c6c6 1px solid; MAX-WIDTH: 60em; MARGIN: 20px 0px; = COLOR: #c6c6c6; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; = BORDER-BOTTOM-STYLE: none } .instructions.socialite P.screenshot { TEXT-ALIGN: center } .instructions.socialite .logotext { LINE-HEIGHT: 32px } .instructions.socialite .logotext .logo { FLOAT: left; MARGIN-RIGHT: 10px } .instructions.socialite .logoclear { CLEAR: left } .instructions.socialite .features { PADDING-LEFT: 15px; MAX-WIDTH: 60em } .socialite .buttonclear { FLOAT: right; OVERFLOW: hidden; MARGIN-RIGHT: 20px } .socialite A.installbutton { PADDING-RIGHT: 48px; DISPLAY: block; BACKGROUND: = url(/static/socialite/installbutton-end.png) no-repeat right top; FLOAT: = left; FONT: bold 18px "Trebuchet MS",Helvetica,"Helvetica = Neue",Arial,sans-serif; COLOR: #fff; MARGIN-RIGHT: 6px; HEIGHT: 50px; = TEXT-DECORATION: none } .socialite A.installbutton SPAN { PADDING-RIGHT: 0px; DISPLAY: block; PADDING-LEFT: 17px; BACKGROUND: = url(/static/socialite/installbutton.png) no-repeat; PADDING-BOTTOM: = 10px; LINE-HEIGHT: 30px; PADDING-TOP: 10px } .socialite A.installbutton:hover { BACKGROUND-POSITION: right bottom } .socialite A.installbutton:hover SPAN { BACKGROUND-POSITION: left bottom } #sr-header-area { PADDING-RIGHT: 0px; PADDING-LEFT: 5px; FONT-SIZE: 90%; PADDING-BOTTOM: = 3px; OVERFLOW: hidden; TEXT-TRANSFORM: uppercase; PADDING-TOP: 3px; = BORDER-BOTTOM: gray 1px solid; WHITE-SPACE: nowrap; BACKGROUND-COLOR: = #f0f0f0 } #sr-header-area .selected A { COLOR: orangered } .srdrop.dropdown .selected { PADDING-RIGHT: 21px; DISPLAY: inline-block; PADDING-LEFT: 5px; = FONT-WEIGHT: normal; BACKGROUND: url(/static/droparrowgray.gif) = no-repeat right center; MARGIN-LEFT: -5px; VERTICAL-ALIGN: bottom; = COLOR: black; MARGIN-RIGHT: 10px } .srdrop .choice { PADDING-TOP: 3px } .srdrop .top-option.choice { BORDER-BOTTOM: #369 1px dotted; FONT-STYLE: italic } .srdrop .bottom-option.choice { BORDER-TOP: #369 1px dotted; FONT-STYLE: italic } .sr-bar .separator { COLOR: gray } .sr-bar A { COLOR: black } #sr-more-link { PADDING-RIGHT: 5px; PADDING-LEFT: 15px; FONT-WEIGHT: bold; RIGHT: 0px; = PADDING-BOTTOM: 0px; MARGIN: 0px; COLOR: black; PADDING-TOP: 0px; = POSITION: absolute; TOP: 3px; BACKGROUND-COLOR: #f0f0f0 } #sr-more-link:hover { TEXT-DECORATION: underline } .subscription-box LI { CLEAR: left; MARGIN-BOTTOM: 10px } .subscription-box .fancy-toggle-button { FLOAT: left; MARGIN-RIGHT: 5px } .subscription-box .title { FONT-SIZE: medium; COLOR: blue; MARGIN-RIGHT: 5px } .subscription-box H1 { TEXT-ALIGN: center } .deltranslator-button.toggle { DISPLAY: inline } #sr { MARGIN-LEFT: 0px } #sr-list-wrapper { BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px; FONT-SIZE: smaller; = MARGIN: 0px 5px; BORDER-LEFT: gray 1px solid; WIDTH: 454px; = BORDER-BOTTOM: gray 1px solid; POSITION: relative; HEIGHT: 200px } #sr-list-cover { BACKGROUND-POSITION: center center; DISPLAY: none; Z-INDEX: 1000; = BACKGROUND-ATTACHMENT: scroll; FILTER: alpha(opacity=3D70); = BACKGROUND-IMAGE: none; WIDTH: 100%; BACKGROUND-REPEAT: no-repeat; = POSITION: absolute; HEIGHT: 100%; opacity: .7 } #sr-list { OVERFLOW: auto; WIDTH: 100%; POSITION: absolute; HEIGHT: 100% } #sr-searchfield { MARGIN: 0px 5px } .sr-name { PADDING-RIGHT: 3px; PADDING-LEFT: 0px; FONT-SIZE: small; = PADDING-BOTTOM: 3px; VERTICAL-ALIGN: top; PADDING-TOP: 3px } .sr-description { PADDING-RIGHT: 3px; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; = PADDING-TOP: 3px } .sr-row { CURSOR: default } .sr-selected.sr-row { BACKGROUND: url(/static/rightarrow.png) #eff7ff no-repeat 0px 5px } .sr-arrow { WIDTH: 10px; HEIGHT: 12px } #sr-autocomplete-area { Z-INDEX: 100; POSITION: relative } #sr-drop-down { BORDER-RIGHT: gray 1px solid; BORDER-TOP: gray 1px solid; DISPLAY: = none; BACKGROUND: white; LEFT: 0px; BORDER-LEFT: gray 1px solid; WIDTH: = 498px; BORDER-BOTTOM: gray 1px solid; POSITION: absolute } #sr-drop-down TABLE { WIDTH: 100% } .sr-name-row { CURSOR: default } .sr-selected.sr-name-row { COLOR: white; BACKGROUND-COLOR: #369 } .submit-header { FONT-WEIGHT: bold; FONT-SIZE: larger } #suggested-reddits { MARGIN-TOP: 5px; FONT-SIZE: small } #suggested-reddits UL { =09 } #suggested-reddits LI { PADDING-RIGHT: 5px; DISPLAY: inline } .formtabs-content { BORDER-TOP: #5f99cf 4px solid; WIDTH: 520px; PADDING-TOP: 10px } .formtabs-content .infobar { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; MARGIN: = 0px; PADDING-TOP: 5px } UL.formtab.tabmenu { DISPLAY: block; PADDING-LEFT: 10px; FONT-SIZE: larger } .formtab.tabmenu LI { MARGIN: 0px } .formtab.tabmenu A { BORDER-RIGHT: #c1c1c1 1px solid; PADDING-RIGHT: 12px; BORDER-TOP: = #c1c1c1 1px solid; PADDING-LEFT: 12px; FONT-WEIGHT: normal; = PADDING-BOTTOM: 0px; VERTICAL-ALIGN: bottom; BORDER-LEFT: #c1c1c1 1px = solid; PADDING-TOP: 0px; BORDER-BOTTOM: #c1c1c1 1px; outline: none } .formtab.tabmenu .selected A { FONT-SIZE: 130%; COLOR: white; BORDER-TOP-STYLE: none; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: = #5f99cf; BORDER-BOTTOM-STYLE: none } .expando { CLEAR: left; MARGIN: 5px 0px } .expando-content { DISPLAY: none } .expando-button { BACKGROUND: white no-repeat center center; FLOAT: left; MARGIN: 2px 5px = 2px 0px; WIDTH: 23px; HEIGHT: 23px } .collapsed.selftext.expando-button { BACKGROUND-IMAGE: url(/static/blog-collapsed.png) } .collapsed.selftext.expando-button:hover { BACKGROUND-IMAGE: url(/static/blog-collapsed-hover.png) } .eb-sch { BACKGROUND-IMAGE: url(/static/blog-collapsed-hover.png) } .expanded.selftext.expando-button { BACKGROUND-IMAGE: url(/static/blog-expanded.png); MARGIN-BOTTOM: 5px } .eb-se { BACKGROUND-IMAGE: url(/static/blog-expanded.png); MARGIN-BOTTOM: 5px } .expanded.selftext.expando-button:hover { BACKGROUND-IMAGE: url(/static/blog-expanded-hover.png) } .eb-seh { BACKGROUND-IMAGE: url(/static/blog-expanded-hover.png) } .collapsed.video.expando-button { BACKGROUND-IMAGE: url(/static/vid-collapsed.png) } .collapsed.video.expando-button:hover { BACKGROUND-IMAGE: url(/static/vid-collapsed-hover.png) } .eb-vch { BACKGROUND-IMAGE: url(/static/vid-collapsed-hover.png) } .expanded.video.expando-button { BACKGROUND-IMAGE: url(/static/vid-expanded.png) } .eb-ve { BACKGROUND-IMAGE: url(/static/vid-expanded.png) } .expanded.video.expando-button:hover { BACKGROUND-IMAGE: url(/static/vid-expanded-hover.png) } .eb-veh { BACKGROUND-IMAGE: url(/static/vid-expanded-hover.png) } .subreddit .usertext .md { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px = solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px = solid; PADDING-TOP: 2px; BORDER-BOTTOM: #ccc 1px solid; = BACKGROUND-COLOR: #fafafa; -moz-border-radius: 7px; = -webkit-border-radius: 7px; border-radius: 7px } .link .usertext .md { BORDER-RIGHT: #369 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #369 1px = solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; BORDER-LEFT: #369 1px = solid; PADDING-TOP: 0px; BORDER-BOTTOM: #369 1px solid; = BACKGROUND-COLOR: #fafafa; -moz-border-radius: 7px; = -webkit-border-radius: 7px; border-radius: 7px } .usertext { FONT-SIZE: small; POSITION: relative } .usertext-edit { PADDING-RIGHT: 1px; MARGIN-TOP: 5px; PADDING-LEFT: 1px; PADDING-BOTTOM: = 0px; WIDTH: 500px; PADDING-TOP: 0px } .usertext-edit TEXTAREA { WIDTH: 500px; HEIGHT: 100px } .border.usertext .usertext-body { PADDING-LEFT: 5px; BACKGROUND-COLOR: #ffc } .grayed.usertext .usertext-body { PADDING-RIGHT: 5px; DISPLAY: inline-block; PADDING-LEFT: 5px; COLOR: = gray; BACKGROUND-COLOR: #f0f0f0 } .usertext BUTTON { MARGIN: 5px 5px 10px 0px } .usertext .help-toggle { MARGIN-TOP: 5px; FONT-SIZE: smaller; FLOAT: right } .usertext .bottom-area { OVERFLOW: hidden; WIDTH: 100% } .usertext TABLE.markhelp { MARGIN: 5px 0px; WIDTH: 100%; BACKGROUND-COLOR: white } .usertext .markhelp { BORDER-RIGHT: #c0c0c0 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: = #c0c0c0 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: 0px; = BORDER-LEFT: #c0c0c0 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #c0c0c0 = 1px solid } .usertext .markhelp TD { BORDER-RIGHT: #c0c0c0 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: = #c0c0c0 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: 0px; = BORDER-LEFT: #c0c0c0 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #c0c0c0 = 1px solid } .usertext .markhelp TR { BORDER-RIGHT: #c0c0c0 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: = #c0c0c0 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; MARGIN: 0px; = BORDER-LEFT: #c0c0c0 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: #c0c0c0 = 1px solid } .usertext .markhelp .spaces { BACKGROUND-COLOR: #c0c0c0 } .roundfield { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: large; = PADDING-BOTTOM: 10px; WIDTH: 500px; PADDING-TOP: 5px; BACKGROUND-COLOR: = #cee3f8; -moz-border-radius: 4px; -webkit-border-radius: 4px; = border-radius: 4px } .roundfield .title { =09 } .roundfield .roundfield-content { MARGIN-TOP: 5px; VERTICAL-ALIGN: top; BORDER-TOP-STYLE: none; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: = none } .roundfield .usertext-edit { WIDTH: 500px } .roundfield TEXTAREA { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 3px; FONT-SIZE: 100%; PADDING-BOTTOM: 3px; MARGIN: = 0px; BORDER-LEFT: gray 1px solid; WIDTH: 492px; PADDING-TOP: 3px; = BORDER-BOTTOM: gray 1px solid } .roundfield INPUT[type=3Dtext] { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 3px; FONT-SIZE: 100%; PADDING-BOTTOM: 3px; MARGIN: = 0px; BORDER-LEFT: gray 1px solid; WIDTH: 492px; PADDING-TOP: 3px; = BORDER-BOTTOM: gray 1px solid } .roundfield INPUT[type=3Dpassword] { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 3px; FONT-SIZE: 100%; PADDING-BOTTOM: 3px; MARGIN: = 0px; BORDER-LEFT: gray 1px solid; WIDTH: 492px; PADDING-TOP: 3px; = BORDER-BOTTOM: gray 1px solid } .captcha.roundfield .capimage { MARGIN-BOTTOM: 10px } .roundfield LABEL { PADDING-RIGHT: 2px; FONT-SIZE: smaller } .linefield { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: large; = PADDING-BOTTOM: 7px; WIDTH: 514px; PADDING-TOP: 7px } .linefield .title { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 1px; MARGIN: 0px 10px; COLOR: #336699; PADDING-TOP: 1px; = LETTER-SPACING: -0.02em; BACKGROUND-COLOR: #cee3f8; FONT-VARIANT: = small-caps } .linefield .title + .gray { FONT-SIZE: x-small } .linefield .delete-field { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: smaller; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .linefield SPAN + SPAN { MARGIN-LEFT: 10px } .linefield .info { FONT-SIZE: small; COLOR: red; FONT-STYLE: italic } .linefield .linefield-content { BORDER-RIGHT: #cee3f8; PADDING-RIGHT: 7px; BORDER-TOP: #cee3f8 4px = solid; PADDING-LEFT: 7px; PADDING-BOTTOM: 5px; VERTICAL-ALIGN: top; = BORDER-LEFT: #cee3f8; PADDING-TOP: 5px; BORDER-BOTTOM: #cee3f8 } .usertext.linefield .usertext-edit { FONT-SIZE: small } .usertext.linefield .edit-usertext { FONT-SIZE: x-small; FLOAT: right } .linefield .upload { FONT-SIZE: small } .linefield .upload LABEL { FONT-SIZE: small } .usertext.linefield .infobar { WIDTH: 100% } .usertext.linefield .usertext-buttons { DISPLAY: none } .linefield TEXTAREA { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 3px; FONT-SIZE: 100%; PADDING-BOTTOM: 3px; MARGIN: = 0px; BORDER-LEFT: gray 1px solid; WIDTH: 492px; PADDING-TOP: 3px; = BORDER-BOTTOM: gray 1px solid } .linefield INPUT[type=3Dtext] { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 3px; FONT-SIZE: 100%; PADDING-BOTTOM: 3px; MARGIN: = 0px; BORDER-LEFT: gray 1px solid; WIDTH: 492px; PADDING-TOP: 3px; = BORDER-BOTTOM: gray 1px solid } .linefield INPUT[type=3Dpassword] { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 3px; FONT-SIZE: 100%; PADDING-BOTTOM: 3px; MARGIN: = 0px; BORDER-LEFT: gray 1px solid; WIDTH: 492px; PADDING-TOP: 3px; = BORDER-BOTTOM: gray 1px solid } .linefield SELECT { MARGIN: 0px } .linefield .captcha.linefield .capimage { MARGIN-BOTTOM: 10px } .linefield LABEL { PADDING-RIGHT: 2px; FONT-SIZE: smaller } .linefield SPAN { FONT-SIZE: smaller } .linefield INPUT[type=3D'text'].small-text { FONT-SIZE: smaller; WIDTH: 100% } .campaign { BORDER-RIGHT: #336699 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #336699 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: = #336699 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: #336699 1px solid; = BACKGROUND-COLOR: #eff7ff } .campaign .status { FONT-SIZE: x-small } .existing-campaigns > TABLE { BORDER-RIGHT: #888 1px solid; BORDER-TOP: #888 1px solid; FONT-SIZE: = x-small; MARGIN: 10px 0px; BORDER-LEFT: #888 1px solid; WIDTH: 100%; = BORDER-BOTTOM: #888 1px solid; BACKGROUND-COLOR: #f8f8f8 } .existing-campaigns TD.bid { PADDING-RIGHT: 15px; BACKGROUND: no-repeat right center } .existing-campaigns TD.paid.bid { BACKGROUND-IMAGE: url(/static/green-check.png) } .existing-campaigns TD.bid .info { MARGIN-RIGHT: 3px } .existing-campaigns > TABLE > TBODY > TR > TD { BORDER-RIGHT: #888 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #888 1px = solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 1px; BORDER-LEFT: #888 1px = solid; PADDING-TOP: 1px; BORDER-BOTTOM: #888 1px solid; TEXT-ALIGN: = right } .existing-campaigns > TABLE > TBODY > TR#edit-campaign-tr > TD { TEXT-ALIGN: left } .existing-campaigns > TABLE > TBODY > TR > TH { BORDER-RIGHT: #888 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #888 1px = solid; PADDING-LEFT: 5px; FONT-WEIGHT: bold; PADDING-BOTTOM: 1px; = BORDER-LEFT: #888 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: #888 1px = solid; TEXT-ALIGN: center } .campaign UL { FONT-SIZE: x-small; MARGIN: 0px 20px; LIST-STYLE-TYPE: disc } .existing-campaigns TD > BUTTON { MARGIN: 0px 5px 0px 0px } .campaign { WIDTH: 95% } .campaign .bid-info { FONT-SIZE: x-small } .campaign .buttons { FLOAT: right } .campaign TD.prefright { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; = PADDING-TOP: 4px } .campaign .targeting { MARGIN-LEFT: 25px } .campaign .targeting INPUT { WIDTH: 95% } .campaign TH { PADDING-RIGHT: 4px; PADDING-LEFT: 4px; FONT-SIZE: small; = PADDING-BOTTOM: 4px; PADDING-TOP: 8px } .linefield .campaign INPUT[type=3Dtext] { FONT-SIZE: x-small } .traffic-table { MARGIN: 10px 20px } .traffic-table A:hover { TEXT-DECORATION: underline } .traffic-table TH { FONT-WEIGHT: bold; TEXT-ALIGN: center } .traffic-table TH { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .traffic-table TD { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .traffic-table TD { TEXT-ALIGN: right } .traffic-table TD.up { COLOR: #ff8b60 } .traffic-table TD.down { COLOR: #336699 } .traffic-table TD.gray { COLOR: gray; FONT-STYLE: italic } .traffic-table TR.max { BORDER-RIGHT: #ff8b60 2px solid; BORDER-TOP: #ff8b60 2px solid; = BORDER-LEFT: #ff8b60 2px solid; BORDER-BOTTOM: #ff8b60 2px solid } .traffic-table TR.min { BORDER-RIGHT: #336699 2px solid; BORDER-TOP: #336699 2px solid; = BORDER-LEFT: #336699 2px solid; BORDER-BOTTOM: #336699 2px solid } .traffic-table TR.odd { BACKGROUND-COLOR: #e0e0e0 } .traffic-table TR.mean { BORDER-TOP: 1px solid; FONT-STYLE: italic } .traffic-table .prelim { FONT-STYLE: italic } .traffic-table .totals { BORDER-TOP: black 1px solid; FONT-STYLE: italic } .traffic-graph { BORDER-RIGHT: #b0b0b0 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: = #b0b0b0 1px solid; DISPLAY: inline-block; PADDING-LEFT: 10px; = MARGIN-BOTTOM: 10px; PADDING-BOTTOM: 10px; MARGIN-LEFT: 10px; = BORDER-LEFT: #b0b0b0 1px solid; PADDING-TOP: 10px; BORDER-BOTTOM: = #b0b0b0 1px solid } .traffic-graph .title { TEXT-ALIGN: center } .promoted-traffic H1 { MARGIN-BOTTOM: 10px; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; BORDER-BOTTOM-STYLE: none } .promoted-traffic .usertable { MARGIN-LEFT: 0px } .promoted-traffic H1 A { FONT-SIZE: small; MARGIN-LEFT: 10px } .award-square-container { MAX-WIDTH: 1000px; OVERFLOW: hidden } .award-square { PADDING-RIGHT: 0px; PADDING-LEFT: 40px; FLOAT: left; PADDING-BOTTOM: = 30px; WIDTH: 300px; PADDING-TOP: 10px; WHITE-SPACE: nowrap } .mini.award-square { WIDTH: 100px; WHITE-SPACE: normal; TEXT-ALIGN: center } .award-square IMG { FLOAT: left; MARGIN: 0px 10px; WIDTH: 70px; HEIGHT: 70px } .mini.award-square IMG { FLOAT: none; MARGIN-BOTTOM: 7px } .award-square .award-name { FONT-WEIGHT: bold; FONT-SIZE: 22px; COLOR: black; LINE-HEIGHT: 1em; = FONT-FAMILY: verdana, arial, helvetica, sans-serif } .mini.award-square .award-name { DISPLAY: block; FONT-SIZE: 18px; MIN-HEIGHT: 36px } .award-square .winner-info { MARGIN-TOP: 15px; COLOR: gray; LINE-HEIGHT: 15px } .award-square .winner-name { FONT-SIZE: 18px; COLOR: #336699 } .lined-table { MARGIN: 5px } TABLE.lined-table { MARGIN: 5px 3px } .lined-table TH { BORDER-RIGHT: #cdcdcd 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: = #cdcdcd 1px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: = #cdcdcd 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #cdcdcd 1px solid } .lined-table TD { BORDER-RIGHT: #cdcdcd 1px solid; PADDING-RIGHT: 3px; BORDER-TOP: = #cdcdcd 1px solid; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; BORDER-LEFT: = #cdcdcd 1px solid; PADDING-TOP: 3px; BORDER-BOTTOM: #cdcdcd 1px solid } .lined-table TH { FONT-WEIGHT: bold; TEXT-ALIGN: center } .sponsorshipbox { MAX-WIDTH: 300px } .sponsorshipbox SPAN { COLOR: gray } .sponsorshipbox DIV { BORDER-RIGHT: #d0d0d0 1px solid; BORDER-TOP: #d0d0d0 1px solid; = BORDER-LEFT: #d0d0d0 1px solid; WIDTH: 300px; BORDER-BOTTOM: #d0d0d0 1px = solid } .sponsorshipbox .promote-pixel { RIGHT: 0px } .sidecontentbox A.helplink { MARGIN-TOP: 4px; FLOAT: right } .trophy-table { WIDTH: 100% } .trophy-area .content { BACKGROUND-COLOR: #f5f5f5 } .trophy-info { VERTICAL-ALIGN: top; TEXT-ALIGN: center } .trophy-info DIV { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 15px; = MARGIN-LEFT: auto; VERTICAL-ALIGN: top; WIDTH: 130px; MARGIN-RIGHT: = auto; PADDING-TOP: 15px } .trophy-icon { MARGIN-BOTTOM: 2px; WIDTH: 40px; HEIGHT: 40px } .left.trophy-info { MARGIN-RIGHT: 10px } .right.trophy-info { =09 } .trophy-name { COLOR: black! important } .trophy-description { FONT-SIZE: x-small; COLOR: #555555 } .dust { MARGIN: 45px auto; COLOR: #d0d0d0; TEXT-ALIGN: center } .removecup-button { DISPLAY: inline } .cup-info-box { BORDER-RIGHT: #eeaa33 2px dashed; PADDING-RIGHT: 5px; BORDER-TOP: = #eeaa33 2px dashed; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: = #eeaa33 2px dashed; PADDING-TOP: 5px; BORDER-BOTTOM: #eeaa33 2px dashed } .cup-info-box TT { BACKGROUND-COLOR: #f5f5aa } .datepicker { DISPLAY: none; Z-INDEX: 1000; -moz-border-radius: 6px; = -webkit-border-radius: 6px; border-radius: 6px; -moz-box-shadow: 3px 3px = 3px #888; -webkit-box-shadow: 3px 3px 3px #888 } .inuse.datepicker { DISPLAY: block } .ui-datepicker-inline { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: x-small; = PADDING-BOTTOM: 5px; PADDING-TOP: 5px } .ui-datepicker-inline .ui-datepicker-prev { FLOAT: left } .ui-datepicker-inline .ui-datepicker-next { FLOAT: right } .ui-datepicker-inline .ui-datepicker-prev SPAN { BORDER-RIGHT: #369 1px solid; BORDER-TOP: #369 1px solid; DISPLAY: = block; MARGIN-BOTTOM: 1px; BORDER-LEFT: #369 1px solid; WIDTH: 1.5em; = COLOR: black; MARGIN-RIGHT: 1px; BORDER-BOTTOM: #369 1px solid; HEIGHT: = 1.5em; TEXT-ALIGN: center } .ui-datepicker-inline .ui-datepicker-next SPAN { BORDER-RIGHT: #369 1px solid; BORDER-TOP: #369 1px solid; DISPLAY: = block; MARGIN-BOTTOM: 1px; BORDER-LEFT: #369 1px solid; WIDTH: 1.5em; = COLOR: black; MARGIN-RIGHT: 1px; BORDER-BOTTOM: #369 1px solid; HEIGHT: = 1.5em; TEXT-ALIGN: center } .ui-datepicker-inline .ui-datepicker-prev:active { PADDING-RIGHT: 4px; PADDING-LEFT: 6px; PADDING-BOTTOM: 4px; = PADDING-TOP: 6px } .ui-datepicker-inline .ui-datepicker-next:active { PADDING-RIGHT: 4px; PADDING-LEFT: 6px; PADDING-BOTTOM: 4px; = PADDING-TOP: 6px } .ui-datepicker-inline .ui-state-disabled.ui-datepicker-prev { DISPLAY: none } .ui-datepicker-inline .ui-state-disabled.ui-datepicker-next { DISPLAY: none } .ui-datepicker-inline .ui-datepicker-prev { PADDING-RIGHT: 5px; DISPLAY: block; PADDING-LEFT: 5px; PADDING-BOTTOM: = 5px; CURSOR: pointer; PADDING-TOP: 5px } .ui-datepicker-inline .ui-datepicker-next { PADDING-RIGHT: 5px; DISPLAY: block; PADDING-LEFT: 5px; PADDING-BOTTOM: = 5px; CURSOR: pointer; PADDING-TOP: 5px } .ui-datepicker-inline .ui-datepicker-title { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; = PADDING-TOP: 5px; TEXT-ALIGN: center } .ui-datepicker-inline TABLE { CLEAR: right } .ui-datepicker-inline .ui-datepicker-calendar TH { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .ui-datepicker-inline .ui-datepicker-calendar TD { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .ui-datepicker-inline .ui-datepicker-calendar TH SPAN { BORDER-RIGHT: #888 1px outset; PADDING-RIGHT: 4px; BORDER-TOP: #888 1px = outset; DISPLAY: block; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; MARGIN: = 1px; VERTICAL-ALIGN: middle; BORDER-LEFT: #888 1px outset; WIDTH: 2em; = COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #888 1px outset; HEIGHT: = 2em; TEXT-ALIGN: right } .ui-datepicker-inline .ui-datepicker-calendar TD SPAN { BORDER-RIGHT: #888 1px outset; PADDING-RIGHT: 4px; BORDER-TOP: #888 1px = outset; DISPLAY: block; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; MARGIN: = 1px; VERTICAL-ALIGN: middle; BORDER-LEFT: #888 1px outset; WIDTH: 2em; = COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #888 1px outset; HEIGHT: = 2em; TEXT-ALIGN: right } .ui-datepicker-inline .ui-datepicker-calendar TD A { BORDER-RIGHT: #888 1px outset; PADDING-RIGHT: 4px; BORDER-TOP: #888 1px = outset; DISPLAY: block; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; MARGIN: = 1px; VERTICAL-ALIGN: middle; BORDER-LEFT: #888 1px outset; WIDTH: 2em; = COLOR: black; PADDING-TOP: 2px; BORDER-BOTTOM: #888 1px outset; HEIGHT: = 2em; TEXT-ALIGN: right } .ui-datepicker-inline .ui-datepicker-calendar TH SPAN { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; TEXT-ALIGN: center; BORDER-BOTTOM-STYLE: none } .ui-datepicker-inline .ui-datepicker-calendar TD.ui-datepicker-today A { BORDER-RIGHT: #db8 1px solid; BORDER-TOP: #db8 1px solid; BORDER-LEFT: = #db8 1px solid; COLOR: #888; BORDER-BOTTOM: #db8 1px solid; = BACKGROUND-COLOR: #ff8 } .ui-datepicker-inline .ui-datepicker-calendar TD.ui-datepicker-today = SPAN { BORDER-RIGHT: #db8 1px solid; BORDER-TOP: #db8 1px solid; BORDER-LEFT: = #db8 1px solid; COLOR: #888; BORDER-BOTTOM: #db8 1px solid; = BACKGROUND-COLOR: #ff8 } .ui-datepicker-inline .ui-datepicker-calendar TD SPAN { COLOR: #888; BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; = BORDER-LEFT-STYLE: solid; BACKGROUND-COLOR: #eee; BORDER-BOTTOM-STYLE: = solid } .ui-datepicker-inline .ui-datepicker-calendar TD A.ui-state-hover { BORDER-LEFT-COLOR: red; BORDER-BOTTOM-COLOR: red; BORDER-TOP-COLOR: = red; BORDER-RIGHT-COLOR: red } .ui-datepicker-inline .ui-datepicker-calendar TD A.ui-state-active { BORDER-RIGHT: red 1px solid; BORDER-TOP: red 1px solid; FONT-WEIGHT: = bold; BORDER-LEFT: red 1px solid; BORDER-BOTTOM: red 1px solid; = BACKGROUND-COLOR: #fcc } .date-input { DISPLAY: inline; POSITION: relative } .date-input INPUT { BORDER-RIGHT: #888 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: #888 1px = solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; MARGIN: 0px 2px; = BORDER-LEFT: #888 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #888 1px = solid; TEXT-ALIGN: center } .date-input .drop-choices { BORDER-RIGHT: #666 1px solid; BORDER-TOP: #666 1px solid; MARGIN: 10px = 3px; BORDER-LEFT: #666 1px solid; BORDER-BOTTOM: #666 1px solid; = POSITION: absolute; BACKGROUND-COLOR: white } .payment-setup INPUT[name=3Dbid] { WIDTH: 6em; TEXT-ALIGN: right } .payment-setup FORM { MARGIN: 20px } .payment-setup P { MARGIN-BOTTOM: 10px } .pay-form TEXTAREA[disabled] { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FONT-SIZE: smaller; = PADDING-BOTTOM: 0px; PADDING-TOP: 0px } .pay-form *[disabled] { FONT-WEIGHT: bold; COLOR: black; BORDER-TOP-STYLE: none; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: = white; BORDER-BOTTOM-STYLE: none } .pay-form INPUT[disabled] { FONT-WEIGHT: bold; COLOR: black; BORDER-TOP-STYLE: none; = BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: = white; BORDER-BOTTOM-STYLE: none } .bid-table { MARGIN: 5px 10px } .bid-table TD { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px; TEXT-ALIGN: right } .bid-table TH { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; = PADDING-TOP: 2px; TEXT-ALIGN: right } .bid-table TH { FONT-WEIGHT: bold; TEXT-ALIGN: center } .create-promotion .help { FONT-SIZE: x-small } .create-promotion .help P { MARGIN: 5px } .create-promotion .help A.help { FONT-WEIGHT: bold; FLOAT: right; COLOR: orangered; TEXT-DECORATION: = none } .create-promo { FLOAT: left; WIDTH: 520px; MARGIN-RIGHT: 20px } .create-promo .infobar { BORDER-LEFT-COLOR: red; BACKGROUND: none transparent scroll repeat 0% = 0%; BORDER-BOTTOM-COLOR: red; WIDTH: 100%; COLOR: black; = BORDER-TOP-COLOR: red; MARGIN-RIGHT: 0px; BORDER-RIGHT-COLOR: red } .create-promo H2 { MARGIN-TOP: 10px; COLOR: black } .create-promo OL { MARGIN: 0px 30px 10px } .create-promo OL > LI { LIST-STYLE-TYPE: disc } .create-promo .rules { TEXT-ALIGN: right } .create-reddit H1 { FONT-SIZE: 200%; COLOR: #999; xmargin: 10px 0 0 5px } .create-promotion H1 { FONT-SIZE: 200%; COLOR: #999; xmargin: 10px 0 0 5px } .create-promotion .sitetable { MARGIN: 5px } .create-promotion .infobar { MARGIN-LEFT: 5px } .create-reddit H1 B { COLOR: #666 } .create-promotion .create-promo .save-button { FLOAT: right } .bidding-history { PADDING-TOP: 10px } .bidding-history .linefield { PADDING-LEFT: 10px; OVERFLOW: hidden; BORDER-LEFT: #ddd 1px dashed; = WIDTH: auto } .bidding-history .linefield .bid-table { FONT-SIZE: x-small } .bidding-history .linefield .notes { FONT-SIZE: x-small } .bidding-history .linefield .notes { MARGIN-TOP: 10px } .bidding-history .linefield .notes P { PADDING-LEFT: 20px; MARGIN-BOTTOM: 2px; TEXT-INDENT: -20px; = FONT-FAMILY: courier } .bidding-history TABLE.bidding-history TR:hover { BACKGROUND-COLOR: #aaa } .bidding-history TABLE.bidding-history TH { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: x-small; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px; TEXT-ALIGN: right } .bidding-history TABLE.bidding-history TD { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-SIZE: x-small; = PADDING-BOTTOM: 2px; PADDING-TOP: 2px; TEXT-ALIGN: right } .bidding-history TABLE.bidding-history TH { FONT-WEIGHT: bold } .bidding-history DIV.graph { HEIGHT: 8px; BACKGROUND-COLOR: #336699 } .pay-form TR.input-error TH { FONT-WEIGHT: bold; COLOR: red; FONT-STYLE: italic } .pay-form TH { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; = PADDING-TOP: 0px } .pay-form TR.input-error INPUT { BORDER-RIGHT: red 1px solid; BORDER-TOP: red 1px solid; BORDER-LEFT: = red 1px solid; BORDER-BOTTOM: red 1px solid } .pay-form TR.input-error TEXTAREA { BORDER-RIGHT: red 1px solid; BORDER-TOP: red 1px solid; BORDER-LEFT: = red 1px solid; BORDER-BOTTOM: red 1px solid } .pay-form TR.input-error SELECT { BORDER-RIGHT: red 1px solid; BORDER-TOP: red 1px solid; BORDER-LEFT: = red 1px solid; BORDER-BOTTOM: red 1px solid } .pay-form INPUT[name=3DexpirationDate] { WIDTH: 10ex } .pay-form INPUT[name=3DcardCode] { WIDTH: 10ex } .pay-form .optional { FONT-SIZE: smaller } .pay-form .disabled .optional { DISPLAY: none } .pay-form P.info { COLOR: red } .pay-link { FONT-SIZE: smaller; MARGIN-LEFT: 10px } DT { FONT-WEIGHT: bold; MARGIN-LEFT: 10px } DD { MARGIN-LEFT: 20px } .calendar { PADDING-BOTTOM: 100px; MARGIN: 20px 0px; OVERFLOW: hidden; WIDTH: 100%; = PADDING-TOP: 120px; WHITE-SPACE: nowrap; POSITION: relative } .calendar DIV.grid { BOTTOM: 0px; POSITION: absolute; TOP: 0px } .calendar DIV.today.grid { BACKGROUND-COLOR: yellow } .calendar DIV.grid DIV.header { FONT-WEIGHT: bold; BORDER-BOTTOM: gray 2px solid; TEXT-ALIGN: center } .calendar DIV.grid + DIV.grid { BORDER-LEFT: gray 1px dashed } .calendar .blob { PADDING-RIGHT: 0px; PADDING-LEFT: 0px; Z-INDEX: 10; FLOAT: left; = PADDING-BOTTOM: 0px; MARGIN: 0px; CURSOR: pointer; PADDING-TOP: 0px } .calendar .link.blob:hover { BORDER-RIGHT: red 1px solid; BORDER-TOP: red 1px solid; Z-INDEX: 100; = BORDER-LEFT: red 1px solid; BORDER-BOTTOM: red 1px solid; = -moz-box-shadow: 2px 2px 2px #000; box-shadow: 2px 2px 2px #000 } .calendar .blob .bid { PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FONT-WEIGHT: bold; = PADDING-BOTTOM: 0px; PADDING-TOP: 5px; TEXT-ALIGN: right } .calendar .link.blob { BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; MARGIN: = -1px -2px 0px; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px = solid } .calendar .link.blob .title { PADDING-RIGHT: 5px; DISPLAY: block; PADDING-LEFT: 5px; FONT-SIZE: = small; PADDING-BOTTOM: 5px; PADDING-TOP: 0px } .borderless TD { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; BORDER-BOTTOM-STYLE: none } .titlebox { FONT-SIZE: larger } .titlebox H1 { FONT-WEIGHT: bold; FONT-SIZE: 19px; MARGIN: 0px 0px 5px; FONT-FAMILY: = arial,verdana,helvetica,sans-serif } .titlebox H1 A { COLOR: black } .titlebox .karma { FONT-WEIGHT: bold; FONT-SIZE: 18px } .titlebox .fancy-toggle-button { DISPLAY: inline-block; MARGIN-RIGHT: 5px } .titlebox .bottom { BORDER-TOP: gray 1px solid; FONT-SIZE: 80%; COLOR: gray; PADDING-TOP: = 2px } .titlebox .age { FLOAT: right } .titlebox .md { FONT-SIZE: 90% } .titlebox .account-notes { FONT-WEIGHT: normal; FONT-SIZE: small; MARGIN-LEFT: 5px } .titlebox .account-notes .unusual { BORDER-RIGHT: red 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: red 1px = solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; MARGIN-LEFT: 5px; = BORDER-LEFT: red 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: red 1px = solid; BACKGROUND-COLOR: #ffdddd } .sidecontentbox { =09 } .sidecontentbox .content { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 5px; FONT-SIZE: larger; PADDING-BOTTOM: 5px; = MARGIN: 0px; BORDER-LEFT: gray 1px solid; PADDING-TOP: 5px; = BORDER-BOTTOM: gray 1px solid } .sidecontentbox .more { MARGIN-TOP: 5px; FONT-SIZE: smaller; TEXT-ALIGN: right } .sidecontentbox .more A { COLOR: gray } .sidecontentbox H1 { FONT-SIZE: 130%; MARGIN: 0px; TEXT-TRANSFORM: uppercase; COLOR: gray } .sidecontentbox .author { DISPLAY: block } .titlebox FORM.toggle { PADDING-RIGHT: 0px; PADDING-LEFT: 20px; FONT-SIZE: smaller; BACKGROUND: = white no-repeat left center; PADDING-BOTTOM: 5px; MARGIN: 0px; COLOR: = gray; PADDING-TOP: 5px } .titlebox FORM.leavemoderator-button { BACKGROUND-IMAGE: url(/static/star.png) } .titlebox FORM.leavecontributor-button { BACKGROUND-IMAGE: url(/static/pencil.png) } .icon-menu A { PADDING-LEFT: 20px; BACKGROUND: white no-repeat left center } .icon-menu LI { MARGIN: 5px 0px } .icon-menu .reddit-edit { BACKGROUND-IMAGE: url(/static/reddit_edit.png) } .icon-menu .reddit-traffic { BACKGROUND-IMAGE: url(/static/reddit_traffic.png) } .icon-menu .reddit-reported { BACKGROUND-IMAGE: url(/static/reddit_reported.png) } .icon-menu .reddit-spam { BACKGROUND-IMAGE: url(/static/reddit_spam.png) } .icon-menu .reddit-ban { BACKGROUND-IMAGE: url(/static/reddit_ban.png) } .icon-menu .reddit-moderators { BACKGROUND-IMAGE: url(/static/star.png) } .icon-menu .moderator-mail { BACKGROUND-IMAGE: url(/static/mailgray.png) } .icon-menu .reddit-contributors { BACKGROUND-IMAGE: url(/static/pencil.png) } .linkinfo { BORDER-RIGHT: #5f99cf 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: = #5f99cf 1px solid; PADDING-LEFT: 5px; FONT-SIZE: larger; PADDING-BOTTOM: = 5px; BORDER-LEFT: #5f99cf 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: = #5f99cf 1px solid; FONT-FAMILY: arial,helvetica,sans-serif; = BACKGROUND-COLOR: #eff7ff; -moz-border-radius: 3px; = -webkit-border-radius: 3px; border-radius: 3px } .linkinfo .score .number { FONT-WEIGHT: bold; FONT-SIZE: 22px } .linkinfo .score .word { FONT-WEIGHT: bold; FONT-SIZE: 15px } .linkinfo .upvotes { FONT-SIZE: 80%; COLOR: orangered } .linkinfo .downvotes { FONT-SIZE: 80%; COLOR: #5f99cf } .linkinfo .shortlink { MARGIN-TOP: 3px; FONT-SIZE: 80% } .linkinfo .shortlink A { FONT-SIZE: 120%; FONT-FAMILY: monospace } .linkinfo TABLE { MARGIN-TOP: 5px } .linkinfo TD { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 2px; FONT-SIZE: smaller; PADDING-BOTTOM: 2px; = BORDER-LEFT: gray 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: gray 1px = solid } .linkinfo TH { BORDER-RIGHT: gray 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: gray 1px = solid; PADDING-LEFT: 2px; FONT-SIZE: smaller; PADDING-BOTTOM: 2px; = BORDER-LEFT: gray 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: gray 1px = solid } A.adminbox { BORDER-RIGHT: #eeeeee 1px solid; PADDING-RIGHT: 1px; BORDER-TOP: = #eeeeee 1px solid; BORDER-LEFT: #eeeeee 1px solid; COLOR: #cdcdcd; = BORDER-BOTTOM: #eeeeee 1px solid; FONT-FAMILY: monospace; TEXT-ALIGN: = center } A.adminbox:hover { BORDER-RIGHT: orangered 1px solid; BORDER-TOP: orangered 1px solid; = BORDER-LEFT: orangered 1px solid; COLOR: orangered; BORDER-BOTTOM: = orangered 1px solid; TEXT-DECORATION: none } .email { FONT-SIZE: larger; FONT-FAMILY: monospace } .lined-table { BORDER-RIGHT: #cdcdcd 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #cdcdcd 1px solid; PADDING-LEFT: 2px; MARGIN-BOTTOM: 10px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #cdcdcd 1px solid; PADDING-TOP: 2px; = BORDER-BOTTOM: #cdcdcd 1px solid; BORDER-COLLAPSE: collapse } .lined-table TH { BORDER-RIGHT: #cdcdcd 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #cdcdcd 1px solid; PADDING-LEFT: 2px; MARGIN-BOTTOM: 10px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #cdcdcd 1px solid; PADDING-TOP: 2px; = BORDER-BOTTOM: #cdcdcd 1px solid; BORDER-COLLAPSE: collapse } .lined-table TD { BORDER-RIGHT: #cdcdcd 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #cdcdcd 1px solid; PADDING-LEFT: 2px; MARGIN-BOTTOM: 10px; = PADDING-BOTTOM: 2px; BORDER-LEFT: #cdcdcd 1px solid; PADDING-TOP: 2px; = BORDER-BOTTOM: #cdcdcd 1px solid; BORDER-COLLAPSE: collapse } .lined-table TH { FONT-WEIGHT: bold } .wide { WIDTH: 100% } .centered { VERTICAL-ALIGN: middle; TEXT-ALIGN: center } .sr-ad-table .inherited { BACKGROUND-COLOR: #ddeeff } .sr-ad-table .overridden { BACKGROUND-COLOR: #ffeedd } .sr-ad-table .unused { BACKGROUND-COLOR: #eee } .sr-ad-table .inherited .whence { FONT-STYLE: italic } .sr-ad-table .overridden .whence { FONT-WEIGHT: bold } .sr-ad-table .details { PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: 150%; = PADDING-BOTTOM: 10px; VERTICAL-ALIGN: top; PADDING-TOP: 10px } .sr-ad-table .details DIV { =09 } .sr-ad-table .details .codename { FONT-SIZE: 150%; MARGIN-BOTTOM: 20px } .sr-ad-table .weight { WIDTH: 4em } .ad-assign-table .warning { FONT-WEIGHT: bold; COLOR: red } .usage-table .intersection { COLOR: #888; FONT-FAMILY: monospace; BORDER-RIGHT-STYLE: none; = BORDER-LEFT-STYLE: none; TEXT-ALIGN: right } .usage-table .intersection SPAN { PADDING-RIGHT: 3px; PADDING-LEFT: 2px; PADDING-BOTTOM: 0px; = PADDING-TOP: 1px } .usage-table .intersection.empty { COLOR: #ccc; TEXT-ALIGN: center } .usage-table .intersection.elapsed { COLOR: black } .usage-table .intersection.count { COLOR: black } .usage-table .intersection.average { BORDER-RIGHT: #cdcdcd 1px solid; COLOR: black } .usage-table .intersection.empty { BORDER-RIGHT: #cdcdcd 1px solid; PADDING-RIGHT: 5px; PADDING-LEFT: 0px; = MARGIN-LEFT: 0px } .usage-table .intersection.average { BORDER-RIGHT: #cdcdcd 1px solid; PADDING-RIGHT: 5px; PADDING-LEFT: 0px; = MARGIN-LEFT: 0px } A.pretty-button:hover { TEXT-DECORATION: none! important } .pretty-button { BORDER-RIGHT: #666 1px solid; PADDING-RIGHT: 6px; BORDER-TOP: #666 1px = solid; PADDING-LEFT: 6px; FONT-WEIGHT: normal; FONT-SIZE: 10px; = BACKGROUND: white repeat-x left center; MARGIN-BOTTOM: 5px; = PADDING-BOTTOM: 1px; MARGIN-LEFT: 5px; BORDER-LEFT: #666 1px solid; = COLOR: #111; LINE-HEIGHT: 20px; PADDING-TOP: 1px; BORDER-BOTTOM: #666 = 1px solid; -moz-border-radius: 3px; -webkit-border-radius: 3px; = border-radius: 3px; outline-style: none } A.negative.pretty-button { BACKGROUND-IMAGE: url(/static/bg-button-negative-unpressed.png); COLOR: = black } A.pressed.negative.pretty-button { BACKGROUND-IMAGE: url(/static/bg-button-negative-pressed.png); COLOR: = white } A.positive.pretty-button { BACKGROUND-IMAGE: url(/static/bg-button-positive-unpressed.png); COLOR: = black } A.pressed.positive.pretty-button { BACKGROUND-IMAGE: url(/static/bg-button-positive-pressed.png); COLOR: = white } .organic-listing .ontrial { BACKGROUND-COLOR: #ffecf8 } .juryduty.help-cover { BACKGROUND-COLOR: #ffecf8 } .organic-listing .ontrial A.title { COLOR: #555 } .organic-listing .ontrial .midcol { MARGIN-TOP: 20px } .we-need-help { FONT-WEIGHT: bold; FONT-SIZE: larger; LINE-HEIGHT: 18px } .organic-listing .how-to-classify { FONT-WEIGHT: bold } .jury-box .arrow-msg { MARGIN-TOP: 5px; DISPLAY: none; COLOR: red } .jury-box .thanks-for-voting { DISPLAY: none; MARGIN-LEFT: 1em; COLOR: red } .jury-box .thanks-for-voting A { MARGIN-LEFT: 1em } .sitetable .linkontrial { PADDING-TOP: 5px } .sitetable .we-need-help { DISPLAY: none } .oatmeal IMG { DISPLAY: block; MARGIN: 5px auto } .lounge { DISPLAY: none } .lounge P { MARGIN-TOP: 5px } .gold-accent { BORDER-RIGHT: #e1b000 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: = #e1b000 1px solid; MARGIN-TOP: 10px; DISPLAY: inline-block; = PADDING-LEFT: 10px; PADDING-BOTTOM: 5px; BORDER-LEFT: #e1b000 1px solid; = COLOR: #9a7d2e; PADDING-TOP: 0px; BORDER-BOTTOM: #e1b000 1px solid; = BACKGROUND-COLOR: #fffdcc } TR.gold-accent { -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px } TR.gold-accent + TR > TD { PADDING-TOP: 10px } .friend-note BUTTON[type=3Dsubmit] { DISPLAY: none; FONT-SIZE: x-small; PADDING-BOTTOM: 1px; MARGIN: 0px 0px = 0px 5px; WIDTH: 45px; PADDING-TOP: 1px } .edited.friend-note BUTTON[type=3Dsubmit] { DISPLAY: inline-block } .edited.friend-note INPUT[type=3Dtext] { WIDTH: 250px; MARGIN-RIGHT: 0px } .gold-accent H1 { COLOR: #6a4d00; FONT-FAMILY: "Hoefler Text","Palatino Linotype","Book = Antiqua",=0A= Palatino,georgia,garamond,FreeSerif,serif; = FONT-VARIANT: small-caps } .gold-accent TH { COLOR: #6a4d00; FONT-FAMILY: "Hoefler Text","Palatino Linotype","Book = Antiqua",=0A= Palatino,georgia,garamond,FreeSerif,serif; = FONT-VARIANT: small-caps } .gold-accent .pretty-form INPUT[type=3Dtext] { MARGIN-TOP: 1px; MARGIN-BOTTOM: 2px; MARGIN-LEFT: 0px } .gold-accent .pretty-form INPUT[type=3Dtext]#name { -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px } .gold-accent .pretty-form BUTTON { BORDER-RIGHT: #9a7d2e 1px solid; BORDER-TOP: #9a7d2e 1px solid; = BORDER-LEFT: #9a7d2e 1px solid; COLOR: #6a4d00; BORDER-BOTTOM: #9a7d2e = 1px solid; BACKGROUND-COLOR: #fff088; -moz-border-radius: 3px; = -webkit-border-radius: 3px; border-radius: 3px } .gold-expiration-info { MARGIN: 3px 0px 5px } .gold-expiration-info .karma { COLOR: #583800 } .giftgold { MARGIN-BOTTOM: 5px } .giftgold A { PADDING-LEFT: 20px; FONT-WEIGHT: bold; BACKGROUND-IMAGE: = url(/static/giftgold.png); COLOR: #9a7d2e; BACKGROUND-REPEAT: no-repeat } .tiny { FONT-SIZE: xx-small } .comment-visits-box.gold-accent { PADDING-RIGHT: 10px; PADDING-LEFT: 7px; MAX-WIDTH: 550px; = PADDING-BOTTOM: 7px; MARGIN: 0px 5px 15px; COLOR: #583800; PADDING-TOP: = 7px } .gold-form { FONT-FAMILY: "Hoefler Text","Palatino Linotype","Book Antiqua", = Palatino,georgia,garamond,FreeSerif,serif } .gold-form .roundfield { BORDER-RIGHT: #e1b000 1px solid; BORDER-TOP: #e1b000 1px solid; = BORDER-LEFT: #e1b000 1px solid; COLOR: #6a4d00; BORDER-BOTTOM: #e1b000 = 1px solid; BACKGROUND-COLOR: #fffdcc } .gold-button { BORDER-LEFT-COLOR: #6a3d00; BORDER-BOTTOM-COLOR: #6a3d00; COLOR: = #482800; BORDER-TOP-COLOR: #fff088; FONT-FAMILY: "Hoefler = Text","Palatino Linotype","Book Antiqua",=0A= Palatino,georgia,garamond,FreeSerif,serif; = BACKGROUND-COLOR: #efcc4c; BORDER-RIGHT-COLOR: #fff088 } .comment-visits-box .title { FONT-WEIGHT: bold } .comment-visits-box LABEL { MARGIN-LEFT: 5px } .new-comment .usertext-body { BORDER-RIGHT: #cddaf3 1px solid; BORDER-TOP: #cddaf3 1px solid; MARGIN: = -1px 0px; BORDER-LEFT: #cddaf3 1px solid; BORDER-BOTTOM: #cddaf3 1px = solid; BACKGROUND-COLOR: #e5efff } .role { WIDTH: 800px } ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.reddit.com/static/css/reddit-ie7-hax.css .toolbar .middle-side INPUT[type=3Dtext] { BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: = none; HEIGHT: 17px; BORDER-BOTTOM-STYLE: none } .unvoted.entry .unvoted.score { DISPLAY: inline } .unvoted.entry DIV.unvoted.score { DISPLAY: inline } .award-square .award-name { FONT-SIZE: 18px } .message .midcol { WIDTH: 15px } ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.reddit.com/static/js/jquery.js?v=930854757635 /*=0A= * jQuery JavaScript Library v1.3.1=0A= * http://jquery.com/=0A= *=0A= * Copyright (c) 2009 John Resig=0A= * Dual licensed under the MIT and GPL licenses.=0A= * http://docs.jquery.com/License=0A= *=0A= * Date: 2009-01-21 20:42:16 -0500 (Wed, 21 Jan 2009)=0A= * Revision: 6158=0A= */=0A= (function(){var = l=3Dthis,g,y=3Dl.jQuery,p=3Dl.$,o=3Dl.jQuery=3Dl.$=3Dfunction(E,F){return= new = o.fn.init(E,F)},D=3D/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=3D/^.[^:#\[\.= ,]*$/;o.fn=3Do.prototype=3D{init:function(E,H){E=3DE||document;if(E.nodeT= ype){this[0]=3DE;this.length=3D1;this.context=3DE;return this}if(typeof = E=3D=3D=3D"string"){var = G=3DD.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=3Do.clean([G[1]],H)}else{var = I=3Ddocument.getElementById(G[3]);if(I&&I.id!=3DG[3]){return = o().find(E)}var F=3Do(I||[]);F.context=3Ddocument;F.selector=3DE;return = F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return = o(document).ready(E)}}if(E.selector&&E.context){this.selector=3DE.selecto= r;this.context=3DE.context}return = this.setArray(o.makeArray(E))},selector:"",jquery:"1.3.1",size:function()= {return this.length},get:function(E){return = E=3D=3D=3Dg?o.makeArray(this):this[E]},pushStack:function(F,H,E){var = G=3Do(F);G.prevObject=3Dthis;G.context=3Dthis.context;if(H=3D=3D=3D"find"= ){G.selector=3Dthis.selector+(this.selector?" = ":"")+E}else{if(H){G.selector=3Dthis.selector+"."+H+"("+E+")"}}return = G},setArray:function(E){this.length=3D0;Array.prototype.push.apply(this,E= );return this},each:function(F,E){return = o.each(this,F,E)},index:function(E){return = o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var = E=3DF;if(typeof F=3D=3D=3D"string"){if(H=3D=3D=3Dg){return = this[0]&&o[G||"attr"](this[0],F)}else{E=3D{};E[F]=3DH}}return = this.each(function(I){for(F in = E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E= ,F){if((E=3D=3D"width"||E=3D=3D"height")&&parseFloat(F)<0){F=3Dg}return = this.attr(E,F,"curCSS")},text:function(F){if(typeof = F!=3D=3D"object"&&F!=3Dnull){return = this.empty().append((this[0]&&this[0].ownerDocument||document).createText= Node(F))}var = E=3D"";o.each(F||this,function(){o.each(this.childNodes,function(){if(thi= s.nodeType!=3D8){E+=3Dthis.nodeType!=3D1?this.nodeValue:o.fn.text([this])= }})});return E},wrapAll:function(E){if(this[0]){var = F=3Do(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBef= ore(this[0])}F.map(function(){var = G=3Dthis;while(G.firstChild){G=3DG.firstChild}return = G}).append(this)}return this},wrapInner:function(E){return = this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){re= turn this.each(function(){o(this).wrapAll(E)})},append:function(){return = this.domManip(arguments,true,function(E){if(this.nodeType=3D=3D1){this.ap= pendChild(E)}})},prepend:function(){return = this.domManip(arguments,true,function(E){if(this.nodeType=3D=3D1){this.in= sertBefore(E,this.firstChild)}})},before:function(){return = this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,= this)})},after:function(){return = this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,= this.nextSibling)})},end:function(){return = this.prevObject||o([])},push:[].push,find:function(E){if(this.length=3D=3D= =3D1&&!/,/.test(E)){var = G=3Dthis.pushStack([],"find",E);G.length=3D0;o.find(E,this[0],G);return = G}else{var F=3Do.map(this,function(H){return o.find(E,H)});return = this.pushStack(/[^+>] = [^+>]/.test(E)?o.unique(F):F,"find",E)}},clone:function(F){var = E=3Dthis.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){va= r = I=3Dthis.cloneNode(true),H=3Ddocument.createElement("div");H.appendChild(= I);return o.clean([H.innerHTML])[0]}else{return = this.cloneNode(true)}});var = G=3DE.find("*").andSelf().each(function(){if(this[h]!=3D=3Dg){this[h]=3Dn= ull}});if(F=3D=3D=3Dtrue){this.find("*").andSelf().each(function(I){if(th= is.nodeType=3D=3D3){return}var H=3Do.data(this,"events");for(var K in = H){for(var J in = H[K]){o.event.add(G[I],K,H[K][J],H[K][J].data)}}})}return = E},filter:function(E){return = this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return = E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return = F.nodeType=3D=3D=3D1})),"filter",E)},closest:function(E){var = F=3Do.expr.match.POS.test(E)?o(E):null;return this.map(function(){var = G=3Dthis;while(G&&G.ownerDocument){if(F?F.index(G)>-1:o(G).is(E)){return = G}G=3DG.parentNode}})},not:function(E){if(typeof = E=3D=3D=3D"string"){if(f.test(E)){return = this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=3Do.multiFilter= (E,this)}}var F=3DE.length&&E[E.length-1]!=3D=3Dg&&!E.nodeType;return = this.filter(function(){return = F?o.inArray(this,E)<0:this!=3DE})},add:function(E){return = this.pushStack(o.unique(o.merge(this.get(),typeof = E=3D=3D=3D"string"?o(E):o.makeArray(E))))},is:function(E){return = !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return = !!E&&this.is("."+E)},val:function(K){if(K=3D=3D=3Dg){var = E=3Dthis[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{= }).specified?E.value:E.text}if(o.nodeName(E,"select")){var = I=3DE.selectedIndex,L=3D[],M=3DE.options,H=3DE.type=3D=3D"select-one";if(= I<0){return null}for(var F=3DH?I:0,J=3DH?I+1:M.length;F=3D0= ||o.inArray(this.name,K)>=3D0)}else{if(o.nodeName(this,"select")){var = N=3Do.makeArray(K);o("option",this).each(function(){this.selected=3D(o.in= Array(this.value,N)>=3D0||o.inArray(this.text,N)>=3D0)});if(!N.length){th= is.selectedIndex=3D-1}}else{this.value=3DK}}})},html:function(E){return = E=3D=3D=3Dg?(this[0]?this[0].innerHTML:null):this.empty().append(E)},repl= aceWith:function(E){return this.after(E).remove()},eq:function(E){return = this.slice(E,+E+1)},slice:function(){return = this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.= prototype.slice.call(arguments).join(","))},map:function(E){return = this.pushStack(o.map(this,function(G,F){return = E.call(G,F,G)}))},andSelf:function(){return = this.add(this.prevObject)},domManip:function(K,N,M){if(this[0]){var = J=3D(this[0].ownerDocument||this[0]).createDocumentFragment(),G=3Do.clean= (K,(this[0].ownerDocument||this[0]),J),I=3DJ.firstChild,E=3Dthis.length>1= ?J.cloneNode(true):J;if(I){for(var = H=3D0,F=3Dthis.length;H0?E.cloneNode(true):= J)}}if(G){o.each(G,z)}}return this;function L(O,P){return = N&&o.nodeName(O,"table")&&o.nodeName(P,"tr")?(O.getElementsByTagName("tbo= dy")[0]||O.appendChild(O.ownerDocument.createElement("tbody"))):O}}};o.fn= .init.prototype=3Do.fn;function = z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o= .globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.pa= rentNode.removeChild(F)}}function e(){return +new = Date}o.extend=3Do.fn.extend=3Dfunction(){var = J=3Darguments[0]||{},H=3D1,I=3Darguments.length,E=3Dfalse,G;if(typeof = J=3D=3D=3D"boolean"){E=3DJ;J=3Darguments[1]||{};H=3D2}if(typeof = J!=3D=3D"object"&&!o.isFunction(J)){J=3D{}}if(I=3D=3DH){J=3Dthis;--H}for(= ;H-1}},swap:functi= on(H,G,I){var E=3D{};for(var F in = G){E[F]=3DH.style[F];H.style[F]=3DG[F]}I.call(H);for(var F in = G){H.style[F]=3DE[F]}},css:function(G,E,I){if(E=3D=3D"width"||E=3D=3D"hei= ght"){var = K,F=3D{position:"absolute",visibility:"hidden",display:"block"},J=3DE=3D=3D= "width"?["Left","Right"]:["Top","Bottom"];function = H(){K=3DE=3D=3D"width"?G.offsetWidth:G.offsetHeight;var = M=3D0,L=3D0;o.each(J,function(){M+=3DparseFloat(o.curCSS(G,"padding"+this= ,true))||0;L+=3DparseFloat(o.curCSS(G,"border"+this+"Width",true))||0});K= -=3DMath.round(M+L)}if(o(G).is(":visible")){H()}else{o.swap(G,F,H)}return= Math.max(0,K)}return o.curCSS(G,E,I)},curCSS:function(I,F,G){var = L,E=3DI.style;if(F=3D=3D"opacity"&&!o.support.opacity){L=3Do.attr(E,"opac= ity");return = L=3D=3D""?"1":L}if(F.match(/float/i)){F=3Dw}if(!G&&E&&E[F]){L=3DE[F]}else= {if(q.getComputedStyle){if(F.match(/float/i)){F=3D"float"}F=3DF.replace(/= ([A-Z])/g,"-$1").toLowerCase();var = M=3Dq.getComputedStyle(I,null);if(M){L=3DM.getPropertyValue(F)}if(F=3D=3D= "opacity"&&L=3D=3D""){L=3D"1"}}else{if(I.currentStyle){var = J=3DF.replace(/\-(\w)/g,function(N,O){return = O.toUpperCase()});L=3DI.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?= $/i.test(L)&&/^\d/.test(L)){var = H=3DE.left,K=3DI.runtimeStyle.left;I.runtimeStyle.left=3DI.currentStyle.l= eft;E.left=3DL||0;L=3DE.pixelLeft+"px";E.left=3DH;I.runtimeStyle.left=3DK= }}}}return L},clean:function(F,K,I){K=3DK||document;if(typeof = K.createElement=3D=3D=3D"undefined"){K=3DK.ownerDocument||K[0]&&K[0].owne= rDocument||document}if(!I&&F.length=3D=3D=3D1&&typeof = F[0]=3D=3D=3D"string"){var = H=3D/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var= = G=3D[],E=3D[],L=3DK.createElement("div");o.each(F,function(P,R){if(typeof= R=3D=3D=3D"number"){R+=3D""}if(!R){return}if(typeof = R=3D=3D=3D"string"){R=3DR.replace(/(<(\w+)[^>]*?)\/>/g,function(T,U,S){re= turn = S.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?T:U+"= >"});var O=3Do.trim(R).toLowerCase();var = Q=3D!O.indexOf("",""]||!O.indexOf(""= ,""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"",= "
"]||!O.indexOf("",""]||= (!O.indexOf("",""]||!O.indexOf("= ",""]||!o.support.htmlSerialize&&[1,"div
","
= "]||[0,"",""];L.innerHTML=3DQ[1]+R+Q[2];while(Q[0]--){L=3DL.lastChild}if(= !o.support.tbody){var = N=3D!O.indexOf(""&&O.indexOf("=3D0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.= length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespa= ce&&/^\s/.test(R)){L.insertBefore(K.createTextNode(R.match(/^\s*/)[0]),L.= firstChild)}R=3Do.makeArray(L.childNodes)}if(R.nodeType){G.push(R)}else{G= =3Do.merge(G,R)}});if(I){for(var = J=3D0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLo= werCase()=3D=3D=3D"text/javascript")){E.push(G[J].parentNode?G[J].parentN= ode.removeChild(G[J]):G[J])}else{if(G[J].nodeType=3D=3D=3D1){G.splice.app= ly(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.= appendChild(G[J])}}return E}return = G},attr:function(J,G,K){if(!J||J.nodeType=3D=3D3||J.nodeType=3D=3D8){retu= rn g}var = H=3D!o.isXMLDoc(J),L=3DK!=3D=3Dg;G=3DH&&o.props[G]||G;if(J.tagName){var = F=3D/href|src|style/.test(G);if(G=3D=3D"selected"&&J.parentNode){J.parent= Node.selectedIndex}if(G in = J&&H&&!F){if(L){if(G=3D=3D"type"&&o.nodeName(J,"input")&&J.parentNode){th= row"type property can't be = changed"}J[G]=3DK}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return = J.getAttributeNode(G).nodeValue}if(G=3D=3D"tabIndex"){var = I=3DJ.getAttributeNode("tabIndex");return = I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|text= area)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return = J[G]}if(!o.support.style&&H&&G=3D=3D"style"){return = o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var = E=3D!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G)= ;return = E=3D=3D=3Dnull?g:E}if(!o.support.opacity&&G=3D=3D"opacity"){if(L){J.zoom=3D= 1;J.filter=3D(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=3D= =3D"NaN"?"":"alpha(opacity=3D"+K*100+")")}return = J.filter&&J.filter.indexOf("opacity=3D")>=3D0?(parseFloat(J.filter.match(= /opacity=3D([^)]*)/)[1])/100)+"":""}G=3DG.replace(/-([a-z])/ig,function(M= ,N){return N.toUpperCase()});if(L){J[G]=3DK}return = J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:= function(G){var E=3D[];if(G!=3Dnull){var = F=3DG.length;if(F=3D=3Dnull||typeof = G=3D=3D=3D"string"||o.isFunction(G)||G.setInterval){E[0]=3DG}else{while(F= ){E[--F]=3DG[F]}}}return E},inArray:function(G,H){for(var = E=3D0,F=3DH.length;E*",this).remove();while(this.firstChild){this.removeChild(this.fi= rstChild)}}},function(E,F){o.fn[E]=3Dfunction(){return = this.each(F,arguments)}});function j(E,F){return = E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var = h=3D"jQuery"+e(),v=3D0,A=3D{};o.extend({cache:{},data:function(F,E,G){F=3D= F=3D=3Dl?A:F;var = H=3DF[h];if(!H){H=3DF[h]=3D++v}if(E&&!o.cache[H]){o.cache[H]=3D{}}if(G!=3D= =3Dg){o.cache[H][E]=3DG}return = E?o.cache[H][E]:H},removeData:function(F,E){F=3DF=3D=3Dl?A:F;var = H=3DF[h];if(E){if(o.cache[H]){delete o.cache[H][E];E=3D"";for(E in = o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete = F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete = o.cache[H]}},queue:function(F,E,H){if(F){E=3D(E||"fx")+"queue";var = G=3Do.data(F,E);if(!G||o.isArray(H)){G=3Do.data(F,E,o.makeArray(H))}else{= if(H){G.push(H)}}}return G},dequeue:function(H,G){var = E=3Do.queue(H,G),F=3DE.shift();if(!G||G=3D=3D=3D"fx"){F=3DE[0]}if(F!=3D=3D= g){F.call(H)}}});o.fn.extend({data:function(E,G){var = H=3DE.split(".");H[1]=3DH[1]?"."+H[1]:"";if(G=3D=3D=3Dg){var = F=3Dthis.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F=3D=3D=3Dg&&this.l= ength){F=3Do.data(this[0],E)}return = F=3D=3D=3Dg&&H[1]?this.data(H[0]):F}else{return = this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G= )})}},removeData:function(E){return = this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeo= f E!=3D=3D"string"){F=3DE;E=3D"fx"}if(F=3D=3D=3Dg){return = o.queue(this[0],E)}return this.each(function(){var = G=3Do.queue(this,E,F);if(E=3D=3D"fx"&&G.length=3D=3D1){G[0].call(this)}})= },dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});=0A= /*=0A= * Sizzle CSS Selector Engine - v0.9.3=0A= * Copyright 2009, The Dojo Foundation=0A= * Released under the MIT, BSD, and GPL Licenses.=0A= * More information: http://sizzlejs.com/=0A= */=0A= (function(){var = Q=3D/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]+['"]|[^[\]= '"]+)+\]|\\.|[^ = >+~,(\[]+)+|[>+~])(\s*,\s*)?/g,K=3D0,G=3DObject.prototype.toString;var = F=3Dfunction(X,T,aa,ab){aa=3Daa||[];T=3DT||document;if(T.nodeType!=3D=3D1= &&T.nodeType!=3D=3D9){return[]}if(!X||typeof X!=3D=3D"string"){return = aa}var = Y=3D[],V,ae,ah,S,ac,U,W=3Dtrue;Q.lastIndex=3D0;while((V=3DQ.exec(X))!=3D=3D= null){Y.push(V[1]);if(V[2]){U=3DRegExp.rightContext;break}}if(Y.length>1&= &L.exec(X)){if(Y.length=3D=3D=3D2&&H.relative[Y[0]]){ae=3DI(Y[0]+Y[1],T)}= else{ae=3DH.relative[Y[0]]?[T]:F(Y.shift(),T);while(Y.length){X=3DY.shift= ();if(H.relative[X]){X+=3DY.shift()}ae=3DI(X,ae)}}}else{var = ad=3Dab?{expr:Y.pop(),set:E(ab)}:F.find(Y.pop(),Y.length=3D=3D=3D1&&T.par= entNode?T.parentNode:T,P(T));ae=3DF.filter(ad.expr,ad.set);if(Y.length>0)= {ah=3DE(ae)}else{W=3Dfalse}while(Y.length){var = ag=3DY.pop(),af=3Dag;if(!H.relative[ag]){ag=3D""}else{af=3DY.pop()}if(af=3D= =3Dnull){af=3DT}H.relative[ag](ah,af,P(T))}}if(!ah){ah=3Dae}if(!ah){throw= "Syntax error, unrecognized expression: = "+(ag||X)}if(G.call(ah)=3D=3D=3D"[object = Array]"){if(!W){aa.push.apply(aa,ah)}else{if(T.nodeType=3D=3D=3D1){for(va= r = Z=3D0;ah[Z]!=3Dnull;Z++){if(ah[Z]&&(ah[Z]=3D=3D=3Dtrue||ah[Z].nodeType=3D= =3D=3D1&&J(T,ah[Z]))){aa.push(ae[Z])}}}else{for(var = Z=3D0;ah[Z]!=3Dnull;Z++){if(ah[Z]&&ah[Z].nodeType=3D=3D=3D1){aa.push(ae[Z= ])}}}}}else{E(ah,aa)}if(U){F(U,T,aa,ab)}return = aa};F.matches=3Dfunction(S,T){return = F(S,null,null,T)};F.find=3Dfunction(Z,S,aa){var = Y,W;if(!Z){return[]}for(var V=3D0,U=3DH.order.length;V":function(X,T,Y){if(typeof = T=3D=3D=3D"string"&&!/\W/.test(T)){T=3DY?T:T.toUpperCase();for(var = U=3D0,S=3DX.length;U1){W[3]=3DF(W[3],null,null,T)}else{var = V=3DF.filter(W[3],T,U,true^X);if(!U){S.push.apply(S,V)}return = false}}else{if(H.match.POS.test(W[0])){return true}}return = W},POS:function(S){S.unshift(true);return = S}},filters:{enabled:function(S){return = S.disabled=3D=3D=3Dfalse&&S.type!=3D=3D"hidden"},disabled:function(S){ret= urn S.disabled=3D=3D=3Dtrue},checked:function(S){return = S.checked=3D=3D=3Dtrue},selected:function(S){S.parentNode.selectedIndex;r= eturn S.selected=3D=3D=3Dtrue},parent:function(S){return = !!S.firstChild},empty:function(S){return = !S.firstChild},has:function(U,T,S){return = !!F(S[3],U).length},header:function(S){return/h\d/i.test(S.nodeName)},tex= t:function(S){return"text"=3D=3D=3DS.type},radio:function(S){return"radio= "=3D=3D=3DS.type},checkbox:function(S){return"checkbox"=3D=3D=3DS.type},f= ile:function(S){return"file"=3D=3D=3DS.type},password:function(S){return"= password"=3D=3D=3DS.type},submit:function(S){return"submit"=3D=3D=3DS.typ= e},image:function(S){return"image"=3D=3D=3DS.type},reset:function(S){retu= rn"reset"=3D=3D=3DS.type},button:function(S){return"button"=3D=3D=3DS.typ= e||S.nodeName.toUpperCase()=3D=3D=3D"BUTTON"},input:function(S){return/in= put|select|textarea|button/i.test(S.nodeName)}},setFilters:{first:functio= n(T,S){return S=3D=3D=3D0},last:function(U,T,S,V){return = T=3D=3D=3DV.length-1},even:function(T,S){return = S%2=3D=3D=3D0},odd:function(T,S){return = S%2=3D=3D=3D1},lt:function(U,T,S){return = TS[3]-0},nth:function(U,T,S){return = S[3]-0=3D=3DT},eq:function(U,T,S){return = S[3]-0=3D=3DT}},filter:{CHILD:function(S,V){var = Y=3DV[1],Z=3DS.parentNode;var X=3DV[0];if(Z&&(!Z[X]||!S.nodeIndex)){var = W=3D1;for(var = T=3DZ.firstChild;T;T=3DT.nextSibling){if(T.nodeType=3D=3D1){T.nodeIndex=3D= W++}}Z[X]=3DW-1}if(Y=3D=3D"first"){return = S.nodeIndex=3D=3D1}else{if(Y=3D=3D"last"){return = S.nodeIndex=3D=3DZ[X]}else{if(Y=3D=3D"only"){return = Z[X]=3D=3D1}else{if(Y=3D=3D"nth"){var = ab=3Dfalse,U=3DV[2],aa=3DV[3];if(U=3D=3D1&&aa=3D=3D0){return = true}if(U=3D=3D0){if(S.nodeIndex=3D=3Daa){ab=3Dtrue}}else{if((S.nodeIndex= -aa)%U=3D=3D0&&(S.nodeIndex-aa)/U>=3D0){ab=3Dtrue}}return = ab}}}}},PSEUDO:function(Y,U,V,Z){var = T=3DU[1],W=3DH.filters[T];if(W){return = W(Y,V,U,Z)}else{if(T=3D=3D=3D"contains"){return(Y.textContent||Y.innerTex= t||"").indexOf(U[3])>=3D0}else{if(T=3D=3D=3D"not"){var X=3DU[3];for(var = V=3D0,S=3DX.length;V=3D0:V=3D=3D=3D"~=3D"?(" "+X+" = ").indexOf(T)>=3D0:!U[4]?S:V=3D=3D=3D"!=3D"?X!=3DT:V=3D=3D=3D"^=3D"?X.ind= exOf(T)=3D=3D=3D0:V=3D=3D=3D"$=3D"?X.substr(X.length-T.length)=3D=3D=3DT:= V=3D=3D=3D"|=3D"?X=3D=3D=3DT||X.substr(0,T.length+1)=3D=3D=3DT+"-":false}= ,POS:function(W,T,U,X){var S=3DT[2],V=3DH.setFilters[S];if(V){return = V(W,U,T,X)}}}};var L=3DH.match.POS;for(var N in = H.match){H.match[N]=3DRegExp(H.match[N].source+/(?![^\[]*\])(?![^\(]*\))/= .source)}var = E=3Dfunction(T,S){T=3DArray.prototype.slice.call(T);if(S){S.push.apply(S,= T);return S}return = T};try{Array.prototype.slice.call(document.documentElement.childNodes)}ca= tch(M){E=3Dfunction(W,V){var T=3DV||[];if(G.call(W)=3D=3D=3D"[object = Array]"){Array.prototype.push.apply(T,W)}else{if(typeof = W.length=3D=3D=3D"number"){for(var = U=3D0,S=3DW.length;U";var = S=3Ddocument.documentElement;S.insertBefore(T,S.firstChild);if(!!document= .getElementById(U)){H.find.ID=3Dfunction(W,X,Y){if(typeof = X.getElementById!=3D=3D"undefined"&&!Y){var = V=3DX.getElementById(W[1]);return V?V.id=3D=3D=3DW[1]||typeof = V.getAttributeNode!=3D=3D"undefined"&&V.getAttributeNode("id").nodeValue=3D= =3D=3DW[1]?[V]:g:[]}};H.filter.ID=3Dfunction(X,V){var W=3Dtypeof = X.getAttributeNode!=3D=3D"undefined"&&X.getAttributeNode("id");return = X.nodeType=3D=3D=3D1&&W&&W.nodeValue=3D=3D=3DV}}S.removeChild(T)})();(fun= ction(){var = S=3Ddocument.createElement("div");S.appendChild(document.createComment(""= ));if(S.getElementsByTagName("*").length>0){H.find.TAG=3Dfunction(T,X){va= r W=3DX.getElementsByTagName(T[1]);if(T[1]=3D=3D=3D"*"){var = V=3D[];for(var = U=3D0;W[U];U++){if(W[U].nodeType=3D=3D=3D1){V.push(W[U])}}W=3DV}return = W}}S.innerHTML=3D"";if(S.firstChild&&S.firstChild.getAttribute("href")!=3D=3D= "#"){H.attrHandle.href=3Dfunction(T){return = T.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){= var S=3DF,T=3Ddocument.createElement("div");T.innerHTML=3D"

";if(T.querySelectorAll&&T.querySelectorAll(".TEST").l= ength=3D=3D=3D0){return}F=3Dfunction(X,W,U,V){W=3DW||document;if(!V&&W.no= deType=3D=3D=3D9&&!P(W)){try{return = E(W.querySelectorAll(X),U)}catch(Y){}}return = S(X,W,U,V)};F.find=3DS.find;F.filter=3DS.filter;F.selectors=3DS.selectors= ;F.matches=3DS.matches})()}if(document.getElementsByClassName&&document.d= ocumentElement.getElementsByClassName){H.order.splice(1,0,"CLASS");H.find= .CLASS=3Dfunction(S,T){return T.getElementsByClassName(S[1])}}function = O(T,Z,Y,ac,aa,ab){for(var W=3D0,U=3Dac.length;W0){W=3DS;break}}}S=3DS[T]}ab[V]=3DW}}}var = J=3Ddocument.compareDocumentPosition?function(T,S){return = T.compareDocumentPosition(S)&16}:function(T,S){return = T!=3D=3DS&&(T.contains?T.contains(S):true)};var P=3Dfunction(S){return = S.nodeType=3D=3D=3D9&&S.documentElement.nodeName!=3D=3D"HTML"||!!S.ownerD= ocument&&P(S.ownerDocument)};var I=3Dfunction(S,Z){var = V=3D[],W=3D"",X,U=3DZ.nodeType?[Z]:Z;while((X=3DH.match.PSEUDO.exec(S))){= W+=3DX[0];S=3DS.replace(H.match.PSEUDO,"")}S=3DH.relative[S]?S+"*":S;for(= var Y=3D0,T=3DU.length;Y=3D0){I.type=3DG=3DG.slice(0,-1);I.exclusive=3Dtrue}if(!H){I.stopPro= pagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&t= his.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeTyp= e=3D=3D3||H.nodeType=3D=3D8){return = g}I.result=3Dg;I.target=3DH;K=3Do.makeArray(K);K.unshift(I)}I.currentTarg= et=3DH;var = J=3Do.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&= G=3D=3D"click"))&&H["on"+G]&&H["on"+G].apply(H,K)=3D=3D=3Dfalse){I.result= =3Dfalse}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=3D=3D= "click")){this.triggered=3Dtrue;try{H[G]()}catch(L){}}this.triggered=3Dfa= lse;if(!I.isPropagationStopped()){var = F=3DH.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},ha= ndle:function(K){var J,E;K=3Darguments[0]=3Do.event.fix(K||l.event);var = L=3DK.type.split(".");K.type=3DL.shift();J=3D!L.length&&!K.exclusive;var = I=3DRegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=3D(o.dat= a(this,"events")||{})[K.type];for(var G in E){var = H=3DE[G];if(J||I.test(H.type)){K.handler=3DH;K.data=3DH.data;var = F=3DH.apply(this,arguments);if(F!=3D=3Dg){K.result=3DF;if(F=3D=3D=3Dfalse= ){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStop= ped()){break}}}},props:"altKey attrChange attrName bubbles button = cancelable charCode clientX clientY ctrlKey currentTarget data detail = eventPhase fromElement handler keyCode metaKey newValue originalTarget = pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey = srcElement target toElement view wheelDelta which".split(" = "),fix:function(H){if(H[h]){return H}var F=3DH;H=3Do.Event(F);for(var = G=3Dthis.props.length,J;G;){J=3Dthis.props[--G];H[J]=3DF[J]}if(!H.target)= {H.target=3DH.srcElement||document}if(H.target.nodeType=3D=3D3){H.target=3D= H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=3D= H.fromElement=3D=3DH.target?H.toElement:H.fromElement}if(H.pageX=3D=3Dnul= l&&H.clientX!=3Dnull){var = I=3Ddocument.documentElement,E=3Ddocument.body;H.pageX=3DH.clientX+(I&&I.= scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=3DH.clientY+(I&= &I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCo= de||H.charCode=3D=3D=3D0)?H.charCode:H.keyCode)){H.which=3DH.charCode||H.= keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=3DH.ctrlKey}if(!H.which&&H.bu= tton){H.which=3D(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return = H},proxy:function(F,E){E=3DE||function(){return = F.apply(this,arguments)};E.guid=3DF.guid=3DF.guid||E.guid||this.guid++;re= turn = E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setu= p:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.lengt= h){var = E=3D0,F=3DRegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").= live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(= this,G[0],c)}}}}}};o.Event=3Dfunction(E){if(!this.preventDefault){return = new = o.Event(E)}if(E&&E.type){this.originalEvent=3DE;this.type=3DE.type}else{t= his.type=3DE}this.timeStamp=3De();this[h]=3Dtrue};function k(){return = false}function u(){return = true}o.Event.prototype=3D{preventDefault:function(){this.isDefaultPrevent= ed=3Du;var = E=3Dthis.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefaul= t()}E.returnValue=3Dfalse},stopPropagation:function(){this.isPropagationS= topped=3Du;var = E=3Dthis.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagat= ion()}E.cancelBubble=3Dtrue},stopImmediatePropagation:function(){this.isI= mmediatePropagationStopped=3Du;this.stopPropagation()},isDefaultPrevented= :k,isPropagationStopped:k,isImmediatePropagationStopped:k};var = a=3Dfunction(F){var = E=3DF.relatedTarget;while(E&&E!=3Dthis){try{E=3DE.parentNode}catch(G){E=3D= this}}if(E!=3Dthis){F.type=3DF.data;o.event.handle.apply(this,arguments)}= };o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.e= vent.special[E]=3D{setup:function(){o.event.add(this,F,a,E)},teardown:fun= ction(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){re= turn = F=3D=3D"unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E= ||G,E&&G)})},one:function(G,H,F){var = E=3Do.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply= (this,arguments)});return = this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){r= eturn = this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){re= turn = this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function= (E,G){if(this[0]){var = F=3Do.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G= ,this[0]);return F.result}},toggle:function(G){var = E=3Darguments,F=3D1;while(F
a';var = H=3DK.getElementsByTagName("*"),E=3DK.getElementsByTagName("a")[0];if(!H|= |!H.length||!E){return}o.support=3D{leadingWhitespace:K.firstChild.nodeTy= pe=3D=3D3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.get= ElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSeria= lize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttrib= ute("style")),hrefNormalized:E.getAttribute("href")=3D=3D=3D"/a",opacity:= E.style.opacity=3D=3D=3D"0.5",cssFloat:!!E.style.cssFloat,scriptEval:fals= e,noCloneEvent:true,boxModel:null};G.type=3D"text/javascript";try{G.appen= dChild(document.createTextNode("window."+J+"=3D1;"))}catch(I){}F.insertBe= fore(G,F.firstChild);if(l[J]){o.support.scriptEval=3Dtrue;delete = l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("oncli= ck",function(){o.support.noCloneEvent=3Dfalse;K.detachEvent("onclick",arg= uments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var = L=3Ddocument.createElement("div");L.style.width=3D"1px";L.style.paddingLe= ft=3D"1px";document.body.appendChild(L);o.boxModel=3Do.support.boxModel=3D= L.offsetWidth=3D=3D=3D2;document.body.removeChild(L)})})();var = w=3Do.support.cssFloat?"cssFloat":"styleFloat";o.props=3D{"for":"htmlFor"= ,"class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly= ",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabin= dex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(type= of G!=3D=3D"string"){return this._load(G)}var I=3DG.indexOf(" = ");if(I>=3D0){var E=3DG.slice(I,G.length);G=3DG.slice(0,I)}var = H=3D"GET";if(J){if(o.isFunction(J)){K=3DJ;J=3Dnull}else{if(typeof = J=3D=3D=3D"object"){J=3Do.param(J);H=3D"POST"}}}var = F=3Dthis;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,= L){if(L=3D=3D"success"||L=3D=3D"notmodified"){F.html(E?o("
").append= (M.responseText.replace(//g,"")).find(E):M.respon= seText)}if(K){F.each(K,[M.responseText,L,M])}}});return = this},serialize:function(){return = o.param(this.serializeArray())},serializeArray:function(){return = this.map(function(){return = this.elements?o.makeArray(this.elements):this}).filter(function(){return = this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.no= deName)||/text|hidden|password/i.test(this.type))}).map(function(E,F){var= G=3Do(this).val();return = G=3D=3Dnull?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,va= lue:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajax= Complete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]= =3Dfunction(G){return this.bind(F,G)}});var = r=3De();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=3DG;G=3Dnul= l}return = o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:functio= n(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return = o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=3DG;G=3D= {}}return = o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:functi= on(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:= true,type:"GET",contentType:"application/x-www-form-urlencoded",processDa= ta:true,async:true,xhr:function(){return l.ActiveXObject?new = ActiveXObject("Microsoft.XMLHTTP"):new = XMLHttpRequest()},accepts:{xml:"application/xml, = text/xml",html:"text/html",script:"text/javascript, = application/javascript",json:"application/json, = text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:= function(M){M=3Do.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var = W,F=3D/=3D\?(&|$)/g,R,V,G=3DM.type.toUpperCase();if(M.data&&M.processData= &&typeof = M.data!=3D=3D"string"){M.data=3Do.param(M.data)}if(M.dataType=3D=3D"jsonp= "){if(G=3D=3D"GET"){if(!M.url.match(F)){M.url+=3D(M.url.match(/\?/)?"&":"= ?")+(M.jsonp||"callback")+"=3D?"}}else{if(!M.data||!M.data.match(F)){M.da= ta=3D(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=3D?"}}M.dataType=3D"j= son"}if(M.dataType=3D=3D"json"&&(M.data&&M.data.match(F)||M.url.match(F))= ){W=3D"jsonp"+r++;if(M.data){M.data=3D(M.data+"").replace(F,"=3D"+W+"$1")= }M.url=3DM.url.replace(F,"=3D"+W+"$1");M.dataType=3D"script";l[W]=3Dfunct= ion(X){V=3DX;I();L();l[W]=3Dg;try{delete = l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=3D=3D"script"&&M.ca= che=3D=3Dnull){M.cache=3Dfalse}if(M.cache=3D=3D=3Dfalse&&G=3D=3D"GET"){va= r E=3De();var = U=3DM.url.replace(/(\?|&)_=3D.*?(&|$)/,"$1_=3D"+E+"$2");M.url=3DU+((U=3D=3D= M.url)?(M.url.match(/\?/)?"&":"?")+"_=3D"+E:"")}if(M.data&&G=3D=3D"GET"){= M.url+=3D(M.url.match(/\?/)?"&":"?")+M.data;M.data=3Dnull}if(M.global&&!o= .active++){o.event.trigger("ajaxStart")}var = Q=3D/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=3D=3D"script"&&G=3D= =3D"GET"&&Q&&(Q[1]&&Q[1]!=3Dlocation.protocol||Q[2]!=3Dlocation.host)){va= r H=3Ddocument.getElementsByTagName("head")[0];var = T=3Ddocument.createElement("script");T.src=3DM.url;if(M.scriptCharset){T.= charset=3DM.scriptCharset}if(!W){var = O=3Dfalse;T.onload=3DT.onreadystatechange=3Dfunction(){if(!O&&(!this.read= yState||this.readyState=3D=3D"loaded"||this.readyState=3D=3D"complete")){= O=3Dtrue;I();L();H.removeChild(T)}}}H.appendChild(T);return g}var = K=3Dfalse;var = J=3DM.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}= else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-T= ype",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Sinc= e",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 = GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setReques= tHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+= ", = */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)=3D=3D= =3Dfalse){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort()= ;return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var = N=3Dfunction(X){if(J.readyState=3D=3D0){if(P){clearInterval(P);P=3Dnull;i= f(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.= readyState=3D=3D4||X=3D=3D"timeout")){K=3Dtrue;if(P){clearInterval(P);P=3D= null}R=3DX=3D=3D"timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModifie= d&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=3D=3D"success"= ){try{V=3Do.httpData(J,M.dataType,M)}catch(Z){R=3D"parsererror"}}if(R=3D=3D= "success"){var = Y;try{Y=3DJ.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&= &Y){o.lastModified[M.url]=3DY}if(!W){I()}}else{o.handleError(M,J,R)}L();i= f(X){J.abort()}if(M.async){J=3Dnull}}}};if(M.async){var = P=3DsetInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("= timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,nul= l,S)}if(!M.async){N()}function = I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSucces= s",[J,M])}}function = L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComp= lete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}retur= n = J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){= o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){t= ry{return = !F.status&&location.protocol=3D=3D"file:"||(F.status>=3D200&&F.status<300= )||F.status=3D=3D304||F.status=3D=3D1223}catch(E){}return = false},httpNotModified:function(G,E){try{var = H=3DG.getResponseHeader("Last-Modified");return = G.status=3D=3D304||H=3D=3Do.lastModified[E]}catch(F){}return = false},httpData:function(J,H,G){var = F=3DJ.getResponseHeader("content-type"),E=3DH=3D=3D"xml"||!H&&F&&F.indexO= f("xml")>=3D0,I=3DE?J.responseXML:J.responseText;if(E&&I.documentElement.= tagName=3D=3D"parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=3DG.= dataFilter(I,H)}if(typeof = I=3D=3D=3D"string"){if(H=3D=3D"script"){o.globalEval(I)}if(H=3D=3D"json")= {I=3Dl["eval"]("("+I+")")}}return I},param:function(E){var = G=3D[];function = H(I,J){G[G.length]=3DencodeURIComponent(I)+"=3D"+encodeURIComponent(J)}if= (o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}el= se{for(var F in = E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFu= nction(E[F])?E[F]():E[F])}}}return = G.join("&").replace(/%20/g,"+")}});var = m=3D{},n,d=3D[["height","marginTop","marginBottom","paddingTop","paddingB= ottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"]= ,["opacity"]];function t(F,E){var = G=3D{};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=3DF});re= turn G}o.fn.extend({show:function(J,L){if(J){return = this.animate(t("show",3),J,L)}else{for(var = H=3D0,F=3Dthis.length;H").appendTo("body");K=3DI.css("display");if(K=3D=3D=3D"none"){K=3D"bloc= k"}I.remove();m[G]=3DK}this[H].style.display=3Do.data(this[H],"olddisplay= ",K)}}return this}},hide:function(H,I){if(H){return = this.animate(t("hide",3),H,I)}else{for(var = G=3D0,F=3Dthis.length;G=3D0;H--){if(G[H].elem=3D=3Dthis){if(E){G[H](true)}G.spl= ice(H,1)}}});if(!E){this.dequeue()}return = this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("= toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F= ){o.fn[E]=3Dfunction(G,H){return = this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=3Dtypeof = G=3D=3D=3D"object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,ea= sing:F&&H||H&&!o.isFunction(H)&&H};E.duration=3Do.fx.off?0:typeof = E.duration=3D=3D=3D"number"?E.duration:o.fx.speeds[E.duration]||o.fx.spee= ds._default;E.old=3DE.complete;E.complete=3Dfunction(){if(E.queue!=3D=3Df= alse){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return= E},easing:{linear:function(G,H,E,F){return = E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}}= ,timers:[],fx:function(F,E,G){this.options=3DE;this.elem=3DF;this.prop=3D= G;if(!E.orig){E.orig=3D{}}}});o.fx.prototype=3D{update:function(){if(this= .options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step= [this.prop]||o.fx.step._default)(this);if((this.prop=3D=3D"height"||this.= prop=3D=3D"width")&&this.elem.style){this.elem.style.display=3D"block"}},= cur:function(F){if(this.elem[this.prop]!=3Dnull&&(!this.elem.style||this.= elem.style[this.prop]=3D=3Dnull)){return this.elem[this.prop]}var = E=3DparseFloat(o.css(this.elem,this.prop,F));return = E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:functi= on(I,H,G){this.startTime=3De();this.start=3DI;this.end=3DH;this.unit=3DG|= |this.unit||"px";this.now=3Dthis.start;this.pos=3Dthis.state=3D0;var = E=3Dthis;function F(J){return = E.step(J)}F.elem=3Dthis.elem;if(F()&&o.timers.push(F)=3D=3D1){n=3DsetInte= rval(function(){var K=3Do.timers;for(var = J=3D0;J=3Dthis.options.duration+this.startTime){this.now=3Dthis.= end;this.pos=3Dthis.state=3D1;this.update();this.options.curAnim[this.pro= p]=3Dtrue;var E=3Dtrue;for(var F in = this.options.curAnim){if(this.options.curAnim[F]!=3D=3Dtrue){E=3Dfalse}}i= f(E){if(this.options.display!=3Dnull){this.elem.style.overflow=3Dthis.opt= ions.overflow;this.elem.style.display=3Dthis.options.display;if(o.css(thi= s.elem,"display")=3D=3D"none"){this.elem.style.display=3D"block"}}if(this= .options.hide){o(this.elem).hide()}if(this.options.hide||this.options.sho= w){for(var I in = this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}thi= s.options.complete.call(this.elem)}return false}else{var = J=3DG-this.startTime;this.state=3DJ/this.options.duration;this.pos=3Do.ea= sing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J= ,0,1,this.options.duration);this.now=3Dthis.start+((this.end-this.start)*= this.pos);this.update()}return = true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opaci= ty:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E)= {if(E.elem.style&&E.elem.style[E.prop]!=3Dnull){E.elem.style[E.prop]=3DE.= now+E.unit}else{E.elem[E.prop]=3DE.now}}}});if(document.documentElement.g= etBoundingClientRect){o.fn.offset=3Dfunction(){if(!this[0]){return{top:0,= left:0}}if(this[0]=3D=3D=3Dthis[0].ownerDocument.body){return = o.offset.bodyOffset(this[0])}var = G=3Dthis[0].getBoundingClientRect(),J=3Dthis[0].ownerDocument,F=3DJ.body,= E=3DJ.documentElement,L=3DE.clientTop||F.clientTop||0,K=3DE.clientLeft||F= .clientLeft||0,I=3DG.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.sc= rollTop)-L,H=3DG.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scro= llLeft)-K;return{top:I,left:H}}}else{o.fn.offset=3Dfunction(){if(!this[0]= ){return{top:0,left:0}}if(this[0]=3D=3D=3Dthis[0].ownerDocument.body){ret= urn = o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();= var = J=3Dthis[0],G=3DJ.offsetParent,F=3DJ,O=3DJ.ownerDocument,M,H=3DO.document= Element,K=3DO.body,L=3DO.defaultView,E=3DL.getComputedStyle(J,null),N=3DJ= .offsetTop,I=3DJ.offsetLeft;while((J=3DJ.parentNode)&&J!=3D=3DK&&J!=3D=3D= H){M=3DL.getComputedStyle(J,null);N-=3DJ.scrollTop,I-=3DJ.scrollLeft;if(J= =3D=3D=3DG){N+=3DJ.offsetTop,I+=3DJ.offsetLeft;if(o.offset.doesNotAddBord= er&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tag= Name))){N+=3DparseInt(M.borderTopWidth,10)||0,I+=3DparseInt(M.borderLeftW= idth,10)||0}F=3DG,G=3DJ.offsetParent}if(o.offset.subtractsBorderForOverfl= owNotVisible&&M.overflow!=3D=3D"visible"){N+=3DparseInt(M.borderTopWidth,= 10)||0,I+=3DparseInt(M.borderLeftWidth,10)||0}E=3DM}if(E.position=3D=3D=3D= "relative"||E.position=3D=3D=3D"static"){N+=3DK.offsetTop,I+=3DK.offsetLe= ft}if(E.position=3D=3D=3D"fixed"){N+=3DMath.max(H.scrollTop,K.scrollTop),= I+=3DMath.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset=3D= {initialize:function(){if(this.initialized){return}var = L=3Ddocument.body,F=3Ddocument.createElement("div"),H,G,N,I,M,E,J=3DL.sty= le.marginTop,K=3D'
';M=3D{position:"absolute",to= p:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"= };for(E in = M){F.style[E]=3DM[E]}F.innerHTML=3DK;L.insertBefore(F,L.firstChild);H=3DF= .firstChild,G=3DH.firstChild,I=3DH.nextSibling.firstChild.firstChild;this= .doesNotAddBorder=3D(G.offsetTop!=3D=3D5);this.doesAddBorderForTableAndCe= lls=3D(I.offsetTop=3D=3D=3D5);H.style.overflow=3D"hidden",H.style.positio= n=3D"relative";this.subtractsBorderForOverflowNotVisible=3D(G.offsetTop=3D= =3D=3D-5);L.style.marginTop=3D"1px";this.doesNotIncludeMarginInBodyOffset= =3D(L.offsetTop=3D=3D=3D0);L.style.marginTop=3DJ;L.removeChild(F);this.in= itialized=3Dtrue},bodyOffset:function(E){o.offset.initialized||o.offset.i= nitialize();var = G=3DE.offsetTop,F=3DE.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOf= fset){G+=3DparseInt(o.curCSS(E,"marginTop",true),10)||0,F+=3DparseInt(o.c= urCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({pos= ition:function(){var I=3D0,H=3D0,F;if(this[0]){var = G=3Dthis.offsetParent(),J=3Dthis.offset(),E=3D/^body|html$/i.test(G[0].ta= gName)?{top:0,left:0}:G.offset();J.top-=3Dj(this,"marginTop");J.left-=3Dj= (this,"marginLeft");E.top+=3Dj(G,"borderTopWidth");E.left+=3Dj(G,"borderL= eftWidth");F=3D{top:J.top-E.top,left:J.left-E.left}}return = F},offsetParent:function(){var = E=3Dthis[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.= tagName)&&o.css(E,"position")=3D=3D"static")){E=3DE.offsetParent}return = o(E)}});o.each(["Left","Top"],function(F,E){var = G=3D"scroll"+E;o.fn[G]=3Dfunction(H){if(!this[0]){return null}return = H!=3D=3Dg?this.each(function(){this=3D=3Dl||this=3D=3Ddocument?l.scrollTo= (!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=3DH}):this[0]=3D=3D= l||this[0]=3D=3Ddocument?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&= &document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Hei= ght","Width"],function(H,F){var = E=3DH?"Left":"Top",G=3DH?"Right":"Bottom";o.fn["inner"+F]=3Dfunction(){re= turn = this[F.toLowerCase()]()+j(this,"padding"+E)+j(this,"padding"+G)};o.fn["ou= ter"+F]=3Dfunction(J){return = this["inner"+F]()+j(this,"border"+E+"Width")+j(this,"border"+G+"Width")+(= J?j(this,"margin"+E)+j(this,"margin"+G):0)};var = I=3DF.toLowerCase();o.fn[I]=3Dfunction(J){return = this[0]=3D=3Dl?document.compatMode=3D=3D"CSS1Compat"&&document.documentEl= ement["client"+F]||document.body["client"+F]:this[0]=3D=3Ddocument?Math.m= ax(document.documentElement["client"+F],document.body["scroll"+F],documen= t.documentElement["scroll"+F],document.body["offset"+F],document.document= Element["offset"+F]):J=3D=3D=3Dg?(this.length?o.css(this[0],I):null):this= .css(I,typeof J=3D=3D=3D"string"?J:J+"px")}})})(); ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.reddit.com/static/js/jquery.reddit.js?v=525082010278 /* The reddit extension for jquery. This file is intended to store=0A= * "utils" type function declarations and to add functionality to "$"=0A= * or "jquery" lookups. See =0A= * http://docs.jquery.com/Plugins/Authoring =0A= * for the plug-in spec.=0A= */=0A= =0A= (function($) {=0A= =0A= /* utility functions */=0A= =0A= $.log =3D function(message) {=0A= if (window.console) {=0A= if (window.console.debug)=0A= window.console.debug(message);=0A= else if (window.console.log)=0A= window.console.log(message);=0A= }=0A= else=0A= alert(message);=0A= };=0A= =0A= $.debug =3D function(message) {=0A= if ($.with_default(reddit.debug, false)) {=0A= return $.log(message);=0A= }=0A= }=0A= $.fn.debug =3D function() { =0A= $.debug($(this));=0A= return $(this);=0A= }=0A= =0A= $.redirect =3D function(dest) {=0A= window.location =3D dest;=0A= };=0A= =0A= $.fn.redirect =3D function(dest) {=0A= /* for forms which are "posting" by ajax leading to a redirect */=0A= $(this).filter("form").find(".status").show().html("redirecting...");=0A= var target =3D $(this).attr('target');=0A= if(target =3D=3D "_top") {=0A= var w =3D window;=0A= while(w !=3D w.parent) {=0A= w =3D w.parent;=0A= }=0A= w.location =3D dest;=0A= } else {=0A= $.redirect(dest);=0A= }=0A= /* this should never happen, but for the sake of internal = consistency */=0A= return $(this)=0A= }=0A= =0A= $.refresh =3D function() {=0A= window.location.reload(true);=0A= };=0A= =0A= $.defined =3D function(value) {=0A= return (typeof(value) !=3D "undefined");=0A= };=0A= =0A= $.with_default =3D function(value, alt) {=0A= return $.defined(value) ? value : alt;=0A= };=0A= =0A= $.websafe =3D function(text) {=0A= if(typeof(text) =3D=3D "string") {=0A= text =3D text.replace(/&/g, "&")=0A= .replace(/"/g, '"') /* " */=0A= .replace(/>/g, ">").replace(/").replace(/</g, "<")=0A= .replace(/&/g, "&");=0A= }=0A= return (text || "");=0A= };=0A= =0A= $.uniq =3D function(list, max) {=0A= /* $.unique only works on arrays of DOM elements */=0A= var ret =3D [];=0A= var seen =3D {};=0A= var num =3D max ? max : list.length;=0A= for(var i =3D 0; i < list.length && ret.length < num; i++) {=0A= if(!seen[list[i]]) {=0A= seen[list[i]] =3D true;=0A= ret.push(list[i]);=0A= }=0A= }=0A= return ret;=0A= };=0A= =0A= /* upgrade show and hide to trigger onshow/onhide events when fired. */=0A= (function(show, hide) {=0A= $.fn.show =3D function(speed, callback) {=0A= $(this).trigger("onshow");=0A= return show.call(this, speed, callback);=0A= }=0A= $.fn.hide =3D function(speed, callback) {=0A= $(this).trigger("onhide");=0A= return hide.call(this, speed, callback);=0A= }=0A= })($.fn.show, $.fn.hide);=0A= =0A= /* customized requests (formerly redditRequest) */=0A= =0A= var _ajax_locks =3D {};=0A= function acquire_ajax_lock(op) {=0A= if(_ajax_locks[op]) {=0A= return false;=0A= }=0A= _ajax_locks[op] =3D true;=0A= return true;=0A= };=0A= =0A= function release_ajax_lock(op) {=0A= delete _ajax_locks[op];=0A= };=0A= =0A= function handleResponse(action) {=0A= return function(r) {=0A= if(r.jquery) {=0A= var objs =3D {};=0A= objs[0] =3D jQuery;=0A= $.map(r.jquery, function(q) {=0A= var old_i =3D q[0], new_i =3D q[1], op =3D q[2], = args =3D q[3];=0A= if (typeof(args) =3D=3D "string") {=0A= args =3D $.unsafe(args);=0A= } else { // assume array=0A= for(var i =3D 0; args.length && i < args.length; = i++)=0A= args[i] =3D $.unsafe(args[i]);=0A= }=0A= if (op =3D=3D "call") =0A= objs[new_i] =3D = objs[old_i].apply(objs[old_i]._obj, args);=0A= else if (op =3D=3D "attr") {=0A= objs[new_i] =3D objs[old_i][args];=0A= if(objs[new_i])=0A= objs[new_i]._obj =3D objs[old_i];=0A= else {=0A= $.debug("unrecognized");=0A= }=0A= }=0A= else {=0A= $.debug("unrecognized");=0A= }=0A= });=0A= }=0A= };=0A= };=0A= =0A= var api_loc =3D '/api/';=0A= $.request =3D function(op, parameters, worker_in, block, type, =0A= get_only, errorhandler) {=0A= /* =0A= Uniquitous reddit AJAX poster. Automatically addes=0A= handleResponse(action) worker to deal with the API result. The=0A= current subreddit (reddit.post_site), the user's modhash=0A= (reddit.modhash) and whether or not we are in a frame=0A= (reddit.cnameframe) are also automatically sent across.=0A= */=0A= var action =3D op;=0A= var worker =3D worker_in;=0A= =0A= if (rate_limit(op))=0A= return;=0A= =0A= /* we have a lock if we are not blocking or if we have gotten a lock = */=0A= var have_lock =3D !$.with_default(block, false) || = acquire_ajax_lock(action);=0A= =0A= parameters =3D $.with_default(parameters, {});=0A= worker_in =3D $.with_default(worker_in, handleResponse(action));=0A= type =3D $.with_default(type, "json");=0A= if (typeof(worker_in) !=3D 'function')=0A= worker_in =3D handleResponse(action);=0A= var worker =3D function(r) {=0A= release_ajax_lock(action);=0A= return worker_in(r);=0A= };=0A= /* do the same for the error handler, and make sure to release the = lock*/=0A= errorhandler_in =3D $.with_default(errorhandler, function() { });=0A= errorhandler =3D function(r) {=0A= release_ajax_lock(action);=0A= return errorhandler_in(r);=0A= };=0A= =0A= =0A= =0A= get_only =3D $.with_default(get_only, false);=0A= =0A= /* set the subreddit name if there is one */=0A= if (reddit.post_site) =0A= parameters.r =3D reddit.post_site;=0A= =0A= /* flag whether or not we are on a cname */=0A= if (reddit.cnameframe) =0A= parameters.cnameframe =3D 1;=0A= =0A= /* add the modhash if the user is logged in */=0A= if (reddit.logged) =0A= parameters.uh =3D reddit.modhash;=0A= =0A= parameters.renderstyle =3D reddit.renderstyle;=0A= =0A= if(have_lock) {=0A= op =3D api_loc + op;=0A= /*if( document.location.host =3D=3D reddit.ajax_domain ) =0A= /* normal AJAX post */=0A= =0A= $.ajax({ type: (get_only) ? "GET" : "POST",=0A= url: op, =0A= data: parameters, =0A= success: worker,=0A= error: errorhandler,=0A= dataType: type});=0A= /*else { /* cross domain it is... * /=0A= op =3D "http://" + reddit.ajax_domain + op + "?callback=3D?";=0A= $.getJSON(op, parameters, worker);=0A= } */=0A= }=0A= };=0A= =0A= var up_cls =3D "up";=0A= var upmod_cls =3D "upmod";=0A= var down_cls =3D "down";=0A= var downmod_cls =3D "downmod";=0A= =0A= rate_limit =3D function() {=0A= /* default rate-limit duration (in milliseconds) */=0A= var default_rate_limit =3D 333;=0A= /* rate limit on a per-action basis (also in ms, 0 =3D don't rate = limit) */=0A= var rate_limits =3D {"vote": 333, "comment": 5000,=0A= "ignore": 0, "ban": 0, "unban": 0,=0A= "assignad": 0 };=0A= var last_dates =3D {};=0A= =0A= /* paranoia: copy global functions used to avoid tampering. */=0A= var defined =3D $.defined;=0A= var with_default =3D $.with_default;=0A= var _Date =3D Date;=0A= =0A= return function(action) {=0A= var now =3D new _Date();=0A= var last_date =3D last_dates[action];=0A= var allowed_interval =3D with_default(rate_limits[action], =0A= default_rate_limit);=0A= last_dates[action] =3D now;=0A= /* true =3D being rate limited */=0A= return (defined(last_date) && now - last_date < allowed_interval)=0A= };=0A= }()=0A= =0A= =0A= $.fn.vote =3D function(vh, callback, event, ui_only) {=0A= /* for vote to work, $(this) should be the clicked arrow */=0A= if (!reddit.logged) {=0A= showcover(true, 'vote_' + $(this).thing_id());=0A= }=0A= else if($(this).hasClass("arrow")) {=0A= var dir =3D ( $(this).hasClass(up_cls) ? 1 :=0A= ( $(this).hasClass(down_cls) ? -1 : 0) );=0A= var things =3D $(this).all_things_by_id();=0A= /* find all arrows of things on the page */=0A= var arrows =3D things.children().not(".child").find('.arrow');=0A= =0A= /* set the new arrow states */=0A= var u_before =3D (dir =3D=3D 1) ? up_cls : upmod_cls;=0A= var u_after =3D (dir =3D=3D 1) ? upmod_cls : up_cls;=0A= = arrows.filter("."+u_before).removeClass(u_before).addClass(u_after);=0A= =0A= var d_before =3D (dir =3D=3D -1) ? down_cls : downmod_cls;=0A= var d_after =3D (dir =3D=3D -1) ? downmod_cls : down_cls;=0A= = arrows.filter("."+d_before).removeClass(d_before).addClass(d_after);=0A= =0A= /* let the user vote only if they are logged in */=0A= if(reddit.logged) {=0A= things.each(function() {=0A= var entry =3D $(this).find(".entry:first, = .midcol:first");=0A= if(dir > 0)=0A= entry.addClass('likes')=0A= .removeClass('dislikes unvoted');=0A= else if(dir < 0)=0A= entry.addClass('dislikes')=0A= .removeClass('likes unvoted');=0A= else=0A= entry.addClass('unvoted')=0A= .removeClass('likes dislikes');=0A= });=0A= if(!$.defined(ui_only)) {=0A= var thing_id =3D things.filter(":first").thing_id();=0A= /* IE6 hack */=0A= vh +=3D event ? "" : ("-" + thing_id); =0A= $.request("vote", {id: thing_id, dir : dir, vh : vh});=0A= }=0A= }=0A= /* execute any callbacks passed in. */=0A= if(callback) =0A= callback(things, dir);=0A= }=0A= if(event) {=0A= event.stopPropagation();=0A= }=0A= };=0A= =0A= =0A= $.fn.thing =3D function() {=0A= /* Returns the first thing that is a parent of the current element */=0A= return this.parents(".thing:first");=0A= };=0A= =0A= $.fn.all_things_by_id =3D function() {=0A= /* Returns the set of things that have the same ID as the current=0A= * element's thing (we make no guarantee about uniqueness of=0A= * things across multiple listings on the same page) */=0A= return this.thing().add( $.things(this.thing_id()) );=0A= };=0A= =0A= $.fn.thing_id =3D function(class_filter) {=0A= class_filter =3D $.with_default(class_filter, "thing");=0A= /* Returns the (reddit) ID of the current element's thing */=0A= var t =3D (this.hasClass("thing")) ? this : this.thing();=0A= if(class_filter !=3D "thing") {=0A= t =3D t.find("." + class_filter + ":first");=0A= }=0A= if(t.length) {=0A= var id =3D $.grep(t.get(0).className.split(' '),=0A= function(i) { return i.match(/^id-/); }); =0A= return (id.length) ? id[0].slice(3, id[0].length) : "";=0A= }=0A= return "";=0A= };=0A= =0A= $.things =3D function() {=0A= /* =0A= * accepts a list of thing_ids as the first argument and returns a=0A= * jquery object consisting of the union of all things on the page=0A= * that represent those things.=0A= */=0A= var sel =3D $.map(arguments, function(x) { return ".thing.id-" + x; = })=0A= .join(", ");=0A= return $(sel);=0A= };=0A= =0A= $.fn.same_author =3D function() {=0A= var aid =3D $(this).thing_id("author");=0A= var ids =3D [];=0A= $(".author.id-" + aid).each(function() {=0A= ids.push(".thing.id-" + $(this).thing_id());=0A= });=0A= return $(ids.join(", "));=0A= };=0A= =0A= $.fn.things =3D function() {=0A= /* =0A= * try to find all things that occur below a given selector, like:=0A= * $('.organic-listing').things('t3_12345')=0A= */=0A= var sel =3D $.map(arguments, function(x) { return ".thing.id-" + x; = })=0A= .join(", ");=0A= return this.find(sel);=0A= };=0A= =0A= $.listing =3D function(name) {=0A= /* =0A= * Given an element name (a sitetable ID or a thing ID, with=0A= * optional siteTable_ at the front), return or generate a listing=0A= * with the proper id for that name. =0A= *=0A= * In the case of a thing ID, this siteTable will be the listing=0A= * in the child div of that thing's container.=0A= * =0A= * In the case of a general ID, it will be the listing of that=0A= * name already present in the DOM.=0A= *=0A= * On failure, will return a JQuery object of zero length.=0A= */=0A= name =3D name || "";=0A= var sitetable =3D "siteTable";=0A= /* we'll add the hash specifier in later */=0A= if (name.slice(0, 1) =3D=3D "#" || name.slice(0, 1) =3D=3D ".")=0A= name =3D name.slice(1, name.length);=0A= =0A= /* lname should be the name of the actual listing (will always=0A= * start with sitetable) while name should be the element it is=0A= * named for (strip off sitetable if present) */=0A= var lname =3D name;=0A= if(name.slice(0, sitetable.length) !=3D sitetable) =0A= lname =3D sitetable + ( (name) ? ("_" + name): "");=0A= else =0A= name =3D name.slice(sitetable.length + 1, name.length);=0A= =0A= var listing =3D $("#" + lname).filter(":first");=0A= /* did the $ lookup match anything? */=0A= if (listing.length =3D=3D 0) {=0A= listing =3D $.things(name).find(".child")=0A= .append(document.createElement('div'))=0A= .children(":last")=0A= .addClass("sitetable")=0A= .attr("id", lname);=0A= }=0A= return listing;=0A= };=0A= =0A= =0A= var thing_init_func =3D function() { };=0A= $.fn.set_thing_init =3D function(func) {=0A= thing_init_func =3D func;=0A= $(this).find(".thing:not(.stub)").each(function() { func(this) });=0A= };=0A= =0A= =0A= $.fn.new_thing_child =3D function(what, use_listing) {=0A= var id =3D this.thing_id();=0A= var where =3D (use_listing) ? $.listing(id) :=0A= this.thing().find(".child:first");=0A= =0A= var new_form;=0A= if (typeof(what) =3D=3D "string") =0A= new_form =3D where.prepend(what).children(":first");=0A= else =0A= new_form =3D what.hide()=0A= .prependTo(where)=0A= .show()=0A= .find('input[name=3Dparent]').attr('value', id).end();=0A= =0A= return (new_form).randomize_ids();=0A= };=0A= =0A= $.fn.randomize_ids =3D function() {=0A= var new_id =3D (Math.random() + "").split('.')[1]=0A= $(this).find("*[id]").each(function() {=0A= $(this).attr('id', $(this).attr("id") + new_id);=0A= }).end()=0A= .find("label").each(function() {=0A= $(this).attr('for', $(this).attr("for") + new_id);=0A= });=0A= return $(this);=0A= }=0A= =0A= $.fn.replace_things =3D function(things, keep_children, reveal, stubs) {=0A= /* Given the api-html structured things, insert them into the DOM=0A= * in such a way as to remove any elements with the same thing_id.=0A= * "keep_children" is a boolean to determine whether or not any=0A= * existing child divs should be retained on the new thing (in the=0A= * case of a comment tree, flags whether or not the new thing has=0A= * the thread present) while "reveal" determines whether or not to=0A= * animate the transition from old to new. */=0A= var midcol =3D $(".midcol:visible:first").css("width");=0A= var numcol =3D $(".rank:visible:first").css("width");=0A= var self =3D this;=0A= return $.map(things, function(thing) {=0A= var data =3D thing.data;=0A= var existing =3D $(self).things(data.id);=0A= if(stubs) =0A= existing =3D existing.filter(".stub");=0A= if(existing.length =3D=3D 0) {=0A= var parent =3D $.things(data.parent);=0A= if (parent.length) {=0A= existing =3D $("
");=0A= parent.find(".child:first").append(existing);=0A= }=0A= }=0A= existing.after($.unsafe(data.content));=0A= var new_thing =3D existing.next();=0A= if($.defined(midcol)) {=0A= new_thing.find(".midcol").css("width", midcol).end()=0A= .find(".rank").css("width", midcol);=0A= }=0A= if(keep_children) {=0A= /* show the new thing */=0A= new_thing.show()=0A= /* but hide its new content */=0A= .children(".midcol, .entry").hide().end()=0A= .children(".child:first")=0A= /* slop over the children */ =0A= .html(existing.children(".child:first")=0A= .remove().html())=0A= .end();=0A= /* hide the old entry and show the new one */=0A= if(reveal) {=0A= existing.hide();=0A= new_thing.children(".midcol, .entry").show();=0A= }=0A= new_thing.find(".rank:first")=0A= .html(existing.find(".rank:first").html());=0A= }=0A= =0A= /* hide and remove old. add in new */=0A= if(reveal) {=0A= existing.hide();=0A= if(keep_children) =0A= new_thing.children(".midcol, .entry")=0A= .show();=0A= else =0A= new_thing.show();=0A= existing.remove();=0A= }=0A= else { =0A= new_thing.hide();=0A= existing.remove();=0A= }=0A= =0A= /* lastly, set the event handlers for these new things */=0A= thing_init_func(new_thing);=0A= return new_thing;=0A= });=0A= =0A= };=0A= =0A= =0A= $.insert_things =3D function(things, append) {=0A= /* Insert new things into a listing.*/=0A= return $.map(things, function(thing) {=0A= var data =3D thing.data;=0A= var midcol =3D $(".midcol:visible:first").css("width");=0A= var numcol =3D $(".rank:visible:first").css("width");=0A= var s =3D $.listing(data.parent);=0A= if(append)=0A= s =3D = s.append($.unsafe(data.content)).children(".thing:last");=0A= else=0A= s =3D = s.prepend($.unsafe(data.content)).children(".thing:first");=0A= s.find(".midcol").css("width", midcol);=0A= s.find(".rank").css("width", numcol);=0A= thing_init_func(s.hide().show());=0A= return s;=0A= });=0A= };=0A= =0A= $.fn.delete_table_row =3D function(callback) {=0A= var tr =3D this.parents("tr:first").get(0);=0A= var table =3D this.parents("table").get(0);=0A= if(tr) {=0A= $(tr).fadeOut(function() {=0A= table.deleteRow(tr.rowIndex);=0A= if(callback) {=0A= callback();=0A= }=0A= });=0A= } else if (callback) {=0A= callback();=0A= }=0A= };=0A= =0A= $.fn.insert_table_rows =3D function(rows, index) {=0A= /* find the subset of the current selection that is a table, or=0A= * the first parent of the current selection that is a table.*/=0A= var tables =3D ((this.is("table")) ? this.filter("table") : =0A= this.parents("table:first"));=0A= =0A= $.map(tables.get(), =0A= function(table) {=0A= $.map(rows, function(thing) {=0A= var i =3D index;=0A= if(i < 0) =0A= i =3D Math.max(table.rows.length + i + 1, 0);=0A= i =3D Math.min(i, table.rows.length);=0A= /* create a new row and set its id and class*/=0A= var row =3D table.insertRow(i);=0A= $(row).hide().attr("id", thing.id)=0A= .addClass(thing.css_class);=0A= /* insert cells */=0A= $.map(thing.cells, function(cell) {=0A= $(row.insertCell(row.cells.length))=0A= .html($.unsafe(cell));=0A= });=0A= /* reveal! */=0A= $(row).fadeIn();=0A= });=0A= });=0A= return this;=0A= };=0A= =0A= $.set_tracker =3D function(id, show_track, click_track) {=0A= /* hook for api to pass back tracker information */=0A= reddit.trackers[id] =3D {show: show_track, click: click_track};=0A= $.things(id).filter(":visible").show();=0A= };=0A= =0A= =0A= $.fn.captcha =3D function(iden) {=0A= /* */=0A= var c =3D this.find(".capimage");=0A= if(iden) {=0A= c.attr("src", "http://" + reddit.ajax_domain =0A= + "/captcha/" + iden + ".png")=0A= .parents("form").find("input[name=3Diden]").attr("value", = iden);=0A= }=0A= return c;=0A= };=0A= =0A= =0A= /* Textarea handlers */=0A= $.fn.insertAtCursor =3D function(value) {=0A= /* "this" refers to current jquery selection and may contain many=0A= * non-textarea elements, so filter out and apply to each */=0A= return $(this).filter("textarea").each(function() {=0A= /* this should be rebound to one of the elements in the orig = list.*/=0A= var textbox =3D $(this).get(0);=0A= var orig_pos =3D textbox.scrollTop;=0A= =0A= if (document.selection) { /* IE */=0A= textbox.focus();=0A= var sel =3D document.selection.createRange();=0A= sel.text =3D value;=0A= }=0A= else if (textbox.selectionStart) {=0A= var prev_start =3D textbox.selectionStart;=0A= textbox.value =3D =0A= textbox.value.substring(0, textbox.selectionStart) + =0A= value + =0A= textbox.value.substring(textbox.selectionEnd, =0A= textbox.value.length);=0A= prev_start +=3D value.length;=0A= textbox.setSelectionRange(prev_start, prev_start);=0A= } else {=0A= textbox.value +=3D value;=0A= }=0A= =0A= if(textbox.scrollHeight) {=0A= textbox.scrollTop =3D orig_pos;=0A= }=0A= =0A= $(this).focus();=0A= })=0A= .end();=0A= };=0A= =0A= $.fn.select_line =3D function(lineNo) {=0A= return $(this).filter("textarea").each(function() {=0A= var newline =3D '\n', newline_length =3D 1, caret_pos =3D 0;=0A= if ( $.browser.msie ) { /* IE hack */=0A= newline =3D '\r';=0A= newline_length =3D 0;=0A= caret_pos =3D 1;=0A= }=0A= =0A= var lines =3D $(this).attr("value").split(newline);=0A= =0A= for(var x=3D0; x for the or ");=0A= }=0A= =0A= };=0A= =0A= $.rehighlight_new_comments =3D function() {=0A= checked =3D $(".comment-visits-box input:checked");=0A= if (checked.length > 0) {=0A= var v =3D checked[0].value;=0A= highlight_new_comments(v);=0A= }=0A= }=0A= =0A= /* namespace globals for cookies -- default prefix and domain */=0A= var default_cookie_domain;=0A= $.default_cookie_domain =3D function(domain) {=0A= if($.defined(domain))=0A= default_cookie_domain =3D domain;=0A= return default_cookie_domain;=0A= };=0A= =0A= var cookie_name_prefix =3D "_";=0A= $.cookie_name_prefix =3D function(name) {=0A= if($.defined(name))=0A= cookie_name_prefix =3D name + "_";=0A= return cookie_name_prefix;=0A= };=0A= =0A= =0A= /* cookie functions */=0A= $.cookie_test =3D function() {=0A= /* tries to write a cookie and sees if it is allowed by making=0A= * sure it can read back what it wrote */=0A= var m =3D (Math.random() + "").split('.')[1];=0A= var name =3D "test";=0A= $.cookie_write({name: name, data: m})=0A= if ($.cookie_read(name).data =3D=3D m) {=0A= $.cookie_erase(name);=0A= return true;=0A= }=0A= };=0A= =0A= $.cookie_erase =3D function(data) {=0A= data.data =3D "";=0A= data.expires =3D -1;=0A= $.cookie_write(data);=0A= };=0A= =0A= $.cookie_write =3D function(c) {=0A= if(c.name) {=0A= var data =3D $.with_default(c.data, "");=0A= data =3D (typeof(data) =3D=3D 'string') ? data : $.toJSON(data);=0A= data =3D cookie_name_prefix + c.name+'=3D'+ escape(data);=0A= if($.defined(c.expires)) {=0A= var expires =3D c.expires;=0A= /* interpret numbers as number of days */=0A= if(typeof(expires) =3D=3D "number") {=0A= var date =3D new Date();=0A= date.setTime(date.getTime()+(expires*24*60*60*1000));=0A= expires =3D date;=0A= }=0A= /* Dates will have a conversion function */=0A= if($.defined(expires.toGMTString)) =0A= expires =3D expires.toGMTString();=0A= data +=3D '; expires=3D' + expires;=0A= }=0A= var domain =3D $.with_default(c.domain, default_cookie_domain);=0A= if($.defined(domain))=0A= data +=3D '; domain=3D' + domain;=0A= data +=3D '; path=3D' + $.with_default(c.path, '/');=0A= document.cookie=3Ddata;=0A= }=0A= };=0A= =0A= $.cookie_read =3D function(name) {=0A= var nameEQ =3D cookie_name_prefix + name + '=3D';=0A= var ca=3Ddocument.cookie.split(';');=0A= /* walk the list backwards so we always get the last cookie in the=0A= list */=0A= var data =3D '';=0A= for(var i =3D ca.length-1; i >=3D 0; i--) { =0A= var c =3D ca[i]; =0A= while(c.charAt(0)=3D=3D' ') c=3Dc.substring(1,c.length);=0A= if(c.indexOf(nameEQ)=3D=3D0) {=0A= /* we can unescape even if it's not escaped */=0A= data =3D unescape(c.substring(nameEQ.length,c.length));=0A= try {=0A= data =3D $.secureEvalJSON(data);=0A= } catch(e) {};=0A= break;=0A= }=0A= }=0A= return {name: name, data: data};=0A= };=0A= =0A= })(jQuery);=0A= ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.reddit.com/static/js/blogbutton.js $(function() {=0A= /* set default arrow behavior */=0A= var state =3D null;=0A= function color(x) {=0A= if(x.substring(0,1) !=3D "#") =0A= return "#" + x;=0A= return x;=0A= }=0A= function set_score_class() {=0A= if (state =3D=3D 1) {=0A= $(".arrow.up").addClass("upmod").removeClass("up");=0A= = $(".arrow.downmod").removeClass("downmod").addClass("down");=0A= $(".entry").removeClass("dislikes").addClass("likes");=0A= }=0A= else if (state =3D=3D -1) {=0A= $(".arrow.upmod").removeClass("upmod").addClass("up");=0A= $(".arrow.down").addClass("downmod").removeClass("down");=0A= $(".entry").addClass("dislikes").removeClass("likes");=0A= }=0A= else {=0A= $(".arrow.upmod").removeClass("upmod").addClass("up");=0A= = $(".arrow.downmod").removeClass("downmod").addClass("down");=0A= $(".entry").removeClass("dislikes").removeClass("likes");=0A= }=0A= }=0A= $(".arrow.up").click(function() {=0A= state =3D $(this).hasClass("up") ? 1: 0;=0A= set_score_class();=0A= });=0A= $(".arrow.down").click(function() {=0A= state =3D $(this).hasClass("down") ? -1: 0;=0A= set_score_class();=0A= });=0A= =0A= var q =3D document.location.search;=0A= if (q && q.substring(0,1) =3D=3D '?') {=0A= q =3D q.slice(1, q.length);=0A= }=0A= var querydict =3D {};=0A= $.map(q.split("&"), function(x) {=0A= var a, b, lst;=0A= lst =3D $.map(x.split('=3D'), function(t) {=0A= return $.websafe(decodeURIComponent(t));=0A= });=0A= a =3D lst[0];=0A= b =3D lst[1];=0A= querydict[a] =3D b;=0A= }); =0A= var submit =3D "/submit?url=3D" + = encodeURIComponent(querydict.url);=0A= if (querydict.sr) {=0A= submit =3D "/r/" + querydict.sr + submit;=0A= }=0A= if (querydict.title) {=0A= submit +=3D "&title=3D" + = encodeURIComponent(querydict.title);=0A= }=0A= $("a").attr("href", submit);=0A= if(querydict.bgcolor) {=0A= $("body").css("background-color", color(querydict.bgcolor));=0A= }=0A= if(querydict.bordercolor) {=0A= $(".blog").css("border-color", color(querydict.bordercolor));=0A= }=0A= =0A= var target =3D (querydict.newwindow)?"_blank":"_top";=0A= $("a").attr("target", target);=0A= =0A= var w =3D $("body").width();=0A= var h =3D $("body").height();=0A= $(".button").width(w ? (w + "px") : "100%");=0A= $(".button").height(h ? (h + "px") : "100%");=0A= =0A= var update_button =3D function(res) {=0A= try {=0A= var modhash =3D res.data.modhash;=0A= if (modhash) {=0A= reddit.logged =3D true;=0A= reddit.modhash =3D modhash;=0A= }=0A= var data =3D res.data.children[0].data;=0A= var realstate =3D 0; =0A= var transition_score =3D function(callback) {=0A= return $(".score:visible").fadeOut(function() {=0A= callback();=0A= $(this).fadeIn().css("display", "");=0A= });=0A= };=0A= /* add the thing's id */=0A= $(".thing").addClass("id-" + data.name);=0A= $(".bling a, a.bling").attr("href", data.permalink);=0A= if(data.likes) {=0A= real_state =3D 1;=0A= transition_score(function() {=0A= $(".score.likes").html(point_label(data.score));=0A= = $(".score.unvoted").html(point_label(data.score-1));=0A= = $(".score.dislikes").html(point_label(data.score-2)); });=0A= }=0A= else if(data.likes =3D=3D false) {=0A= real_state =3D -1;=0A= transition_score(function() {=0A= = $(".score.likes").html(point_label(data.score+2));=0A= = $(".score.unvoted").html(point_label(data.score+1));=0A= = $(".score.dislikes").html(point_label(data.score)); });=0A= }=0A= else {=0A= real_state =3D 0;=0A= transition_score(function() {=0A= = $(".score.likes").html(point_label(data.score+1));=0A= = $(".score.unvoted").html(point_label(data.score));=0A= = $(".score.dislikes").html(point_label(data.score-1)) });=0A= }=0A= =0A= /* if logged in, over-write the click event on arrows */=0A= $(".arrow").unbind("click").click(function() {=0A= $(this).vote('', set_score, true);=0A= });=0A= if(reddit.logged && state !=3D real_state) {=0A= if(state !=3D null) {=0A= $.request("vote", {id: data.name, dir : state});=0A= }=0A= else {=0A= state =3D real_state;=0A= }=0A= }=0A= set_score_class();=0A= finalize_thing(data);=0A= } catch(e) {=0A= make_submit();=0A= };=0A= };=0A= =0A= var make_submit =3D function() {=0A= var submit =3D "/submit?url=3D" + = encodeURIComponent(querydict.url);=0A= if (querydict.sr) {=0A= submit =3D "/r/" + querydict.sr + submit;=0A= }=0A= if (querydict.title) {=0A= submit +=3D "&title=3D" + = encodeURIComponent(querydict.title);=0A= }=0A= $(".score:visible").fadeOut(function() {=0A= $(".score").html('submit');=0A= $(this).fadeIn().css("display", "");});=0A= $(".bling a, a.bling").attr("href", submit);=0A= $(".arrow").each(function() {=0A= $(this).get(0).onclick =3D function() {=0A= if(target =3D=3D '_blank'){=0A= window.open(submit, target);=0A= } else {=0A= window.parent.location =3D submit;=0A= }=0A= }=0A= });=0A= }=0A= =0A= var url =3D "/button_info.json";=0A= if (querydict.sr) {=0A= url =3D "/r/" + querydict.sr + url;=0A= }=0A= params =3D {};=0A= if ($.defined(querydict.url)) {=0A= params["url"] =3D querydict.url;=0A= }=0A= if ($.defined(querydict.id)) {=0A= params["id"] =3D querydict.id;=0A= }=0A= =0A= $.ajax({ type: "GET", url: url,=0A= data: params, =0A= success : update_button,=0A= error: make_submit,=0A= dataType: "json"});=0A= }=0A= );=0A= =0A= function point_label(x) {=0A= return x;=0A= }=0A= =0A= function set_score() {=0A= /* to be overridden for anything in the non-general case */=0A= }=0A= =0A= function finalize_thing(data) {=0A= /* to be overridden for anything in the non-general case */=0A= } ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: multipart/alternative; boundary="----=_NextPart_001_0170_01CBB1A9.A8ACAFF0" ------=_NextPart_001_0170_01CBB1A9.A8ACAFF0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.wired.com/science/discoveries/news/2007/12/dayintech_1205 =EF=BB=BF Dec. 5, 1951: 'Your = Car Is on the 12th Floor, Lady'
=20
Science =  : =20 Discoveries =   3DRSS=20

Dec. 5, 1951: 'Your Car Is on the 12th Floor, = Lady'

By Tony = Long =20 12.05.07
=20
A modern descendant of the Park-O-Mat, the Volkswagen = CarTowers,=20 stacks cars in the Autostadt theme park, in Wolfsburg, Germany.=20
Photo: Christian Charisius / Corbis

1951: The first Park-O-Mat parking garage opens in=20 Washington, D.C.

Operated by Parking Services Inc., this unique garage had no ramps, = aisles or=20 lanes. Instead, two 16-story elevators were deployed to store up to 72=20 automobiles. It was simplicity itself, requiring a single attendant and = taking=20 up very little space (a 25-by-40-foot lot did the trick).

Cars were retrieved in under a minute using an early version of a = "vehicle=20 parking apparatus." It's basically a revolving elevator into which the = cars are=20 driven and stored.

The attendant, who retrieves the car by operating the elevator from = ground=20 level, never steps inside the vehicle.

The Park-O-Mat bespeaks an era, the postwar boom years in America = when=20 automation was the rage. Automats, or automated cafeterias, were = popular, and it=20 was also the time when laundromats, still a fixture in the urban = landscape,=20 appeared on the scene.

While the original Park-O-Mat was a fairly short-lived phenomenon, = the more=20 sophisticated automated = parking=20 garage is enjoying something of a renaissance=20 in U.S. cities where parking is tight (i.e., practically all of = them).

(Source: Today in Science History)

=
Stumble
ShareThis
  • 3D"Email Email Article =
  • =
  • 3D"Full Full Page=20
  • = Comments=20
Advertisement
With HP wireless printers, = you could=20 have printed this from any room in the house.
Live wirelessly. = Print=20 wirelessly.

Sponsored by: 

=
=

Subscribe to=20 WIRED

Renew

Give a=20 gift

Customer Service

Services

Subscription: Subscribe | Give a Gift | Renew | International | Questions | Change Address
Quick Links: Contact Us | Login/RegisterLogout | Newsletter | RSS Feeds | Tech Jobs | Wired Mobile | FAQ | Sitemap
Corrections | Sitemap | FAQ | Contact Us | Wired Staff | Advertising | Press Center | Subscription=20 Services | Newsletter | RSS Feeds 3D"Text
Cond=C3=A9 Nast Web = Sites:=20
Webmonkey | Reddit | ArsTechnica | Details | Golf Digest | GQ | New=20 Yorker
=20

Registration on or use of this site constitutes acceptance of our User Agreement = (Revised=20 8/28/2008) and Privacy=20 Policy (Revised 8/28/2008).

Wired.com =C2=A9 2010 Cond=C3=A9 Nast Digital. All rights = reserved.

The material on this site may not be reproduced, distributed, = transmitted,=20 cached or otherwise used, except with the prior written permission of = Cond=C3=A9 Nast=20 Digital.

------=_NextPart_001_0170_01CBB1A9.A8ACAFF0 Content-Type: text/css; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.reddit.com/static/button/button1.html?width=120&url=http%3A%2F%2Fwww.wired.com%2Fscience%2Fdiscoveries%2Fnews%2F2007%2F12%2Fdayintech_1205&title=Dec.%205%2C%201951%3A%20'Your%20Car%20Is%20on%20the%2012th%20Floor%2C%20Lady'&css=http%3A%2F%2Fwww.wired.com%2Fcss%2Fredditsocial.css =EF=BB=BF reddit = buttons ------=_NextPart_001_0170_01CBB1A9.A8ACAFF0-- ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Location: http://www.wired.com/css/inform/informRelatedContentWidget.css #inf_relatedStories { MARGIN-TOP: 15px; WIDTH: 600px } #inf_relatedStories UL { COLOR: #333; LINE-HEIGHT: 0.35em; LIST-STYLE-TYPE: none } #inf_relatedStories A { COLOR: #007ca5; TEXT-DECORATION: none } #inf_relatedStories H4 { FONT-SIZE: 1em } H5 { FONT-SIZE: 1em } #inf_relatedStories A:hover { BACKGROUND-COLOR: #e5f8ff } #inf_relatedStories H2 A:hover { BACKGROUND-COLOR: #e5f8ff } #inf_relatedStories H3 A:hover { BACKGROUND-COLOR: #e5f8ff } .iw_moreAbout { MARGIN-TOP: 10px; FONT-FAMILY: Arial,Verdana,sans-serif } .iw_moreAbout LI { DISPLAY: inline; LINE-HEIGHT: 1.35em } .iw_moreAbout UL { DISPLAY: inline; LINE-HEIGHT: 1.35em } .iw_moreAbout H5 { DISPLAY: inline } ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.wired.com/ajax/widgets/related/content/article/202811 =EF=BB=BF ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.wired.com/js/comments/json.js /*=0A= Copyright (c) 2005 JSON.org=0A= =0A= Permission is hereby granted, free of charge, to any person obtaining a = copy=0A= of this software and associated documentation files (the "Software"), to = deal=0A= in the Software without restriction, including without limitation the = rights=0A= to use, copy, modify, merge, publish, distribute, sublicense, and/or sell=0A= copies of the Software, and to permit persons to whom the Software is=0A= furnished to do so, subject to the following conditions:=0A= =0A= The Software shall be used for Good, not Evil.=0A= =0A= THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS = OR=0A= IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,=0A= FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL = THE=0A= AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER=0A= LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING = FROM,=0A= OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS = IN THE=0A= SOFTWARE.=0A= */=0A= =0A= /*=0A= The global object JSON contains two methods.=0A= =0A= JSON.stringify(value) takes a JavaScript value and produces a JSON = text.=0A= The value must not be cyclical.=0A= =0A= JSON.parse(text) takes a JSON text and produces a JavaScript value. = It will=0A= return false if there is an error.=0A= */=0A= var JSON =3D function () {=0A= var m =3D {=0A= '\b': '\\b',=0A= '\t': '\\t',=0A= '\n': '\\n',=0A= '\f': '\\f',=0A= '\r': '\\r',=0A= '"' : '\\"',=0A= '\\': '\\\\'=0A= },=0A= s =3D {=0A= 'boolean': function (x) {=0A= return String(x);=0A= },=0A= number: function (x) {=0A= return isFinite(x) ? String(x) : 'null';=0A= },=0A= string: function (x) {=0A= if (/["\\\x00-\x1f]/.test(x)) {=0A= x =3D x.replace(/([\x00-\x1f\\"])/g, function(a, b) {=0A= var c =3D m[b];=0A= if (c) {=0A= return c;=0A= }=0A= c =3D b.charCodeAt();=0A= return '\\u00' +=0A= Math.floor(c / 16).toString(16) +=0A= (c % 16).toString(16);=0A= });=0A= }=0A= return '"' + x + '"';=0A= },=0A= object: function (x) {=0A= if (x) {=0A= var a =3D [], b, f, i, l, v;=0A= if (x instanceof Array) {=0A= a[0] =3D '[';=0A= l =3D x.length;=0A= for (i =3D 0; i < l; i +=3D 1) {=0A= v =3D x[i];=0A= f =3D s[typeof v];=0A= if (f) {=0A= v =3D f(v);=0A= if (typeof v =3D=3D 'string') {=0A= if (b) {=0A= a[a.length] =3D ',';=0A= }=0A= a[a.length] =3D v;=0A= b =3D true;=0A= }=0A= }=0A= }=0A= a[a.length] =3D ']';=0A= } else if (x instanceof Object) {=0A= a[0] =3D '{';=0A= for (i in x) {=0A= v =3D x[i];=0A= f =3D s[typeof v];=0A= if (f) {=0A= v =3D f(v);=0A= if (typeof v =3D=3D 'string') {=0A= if (b) {=0A= a[a.length] =3D ',';=0A= }=0A= a.push(s.string(i), ':', v);=0A= b =3D true;=0A= }=0A= }=0A= }=0A= a[a.length] =3D '}';=0A= } else {=0A= return;=0A= }=0A= return a.join('');=0A= }=0A= return 'null';=0A= }=0A= };=0A= return {=0A= copyright: '(c)2005 JSON.org',=0A= license: 'http://www.crockford.com/JSON/license.html',=0A= /*=0A= Stringify a JavaScript value, producing a JSON text.=0A= */=0A= stringify: function (v) {=0A= var f =3D s[typeof v];=0A= if (f) {=0A= v =3D f(v);=0A= if (typeof v =3D=3D 'string') {=0A= return v;=0A= }=0A= }=0A= return null;=0A= },=0A= /*=0A= Parse a JSON text, producing a JavaScript value.=0A= It returns false if there is a syntax error.=0A= */=0A= eval: function (text) {=0A= try {=0A= return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(=0A= text.replace(/"(\\.|[^"\\])*"/g, ''))) &&=0A= eval('(' + text + ')');=0A= } catch (e) {=0A= return false;=0A= }=0A= },=0A= =0A= parse: function (text) {=0A= var at =3D 0;=0A= var ch =3D ' ';=0A= =0A= function error(m) {=0A= throw {=0A= name: 'JSONError',=0A= message: m,=0A= at: at - 1,=0A= text: text=0A= };=0A= }=0A= =0A= function next() {=0A= ch =3D text.charAt(at);=0A= at +=3D 1;=0A= return ch;=0A= }=0A= =0A= function white() {=0A= while (ch) {=0A= if (ch <=3D ' ') {=0A= next();=0A= } else if (ch =3D=3D '/') {=0A= switch (next()) {=0A= case '/':=0A= while (next() && ch !=3D '\n' && ch !=3D = '\r') {}=0A= break;=0A= case '*':=0A= next();=0A= for (;;) {=0A= if (ch) {=0A= if (ch =3D=3D '*') {=0A= if (next() =3D=3D '/') {=0A= next();=0A= break;=0A= }=0A= } else {=0A= next();=0A= }=0A= } else {=0A= error("Unterminated comment");=0A= }=0A= }=0A= break;=0A= default:=0A= error("Syntax error");=0A= }=0A= } else {=0A= break;=0A= }=0A= }=0A= }=0A= =0A= function string() {=0A= var i, s =3D '', t, u;=0A= =0A= if (ch =3D=3D '"') {=0A= outer: while (next()) {=0A= if (ch =3D=3D '"') {=0A= next();=0A= return s;=0A= } else if (ch =3D=3D '\\') {=0A= switch (next()) {=0A= case 'b':=0A= s +=3D '\b';=0A= break;=0A= case 'f':=0A= s +=3D '\f';=0A= break;=0A= case 'n':=0A= s +=3D '\n';=0A= break;=0A= case 'r':=0A= s +=3D '\r';=0A= break;=0A= case 't':=0A= s +=3D '\t';=0A= break;=0A= case 'u':=0A= u =3D 0;=0A= for (i =3D 0; i < 4; i +=3D 1) {=0A= t =3D parseInt(next(), 16);=0A= if (!isFinite(t)) {=0A= break outer;=0A= }=0A= u =3D u * 16 + t;=0A= }=0A= s +=3D String.fromCharCode(u);=0A= break;=0A= default:=0A= s +=3D ch;=0A= }=0A= } else {=0A= s +=3D ch;=0A= }=0A= }=0A= }=0A= error("Bad string");=0A= }=0A= =0A= function array() {=0A= var a =3D [];=0A= =0A= if (ch =3D=3D '[') {=0A= next();=0A= white();=0A= if (ch =3D=3D ']') {=0A= next();=0A= return a;=0A= }=0A= while (ch) {=0A= a.push(value());=0A= white();=0A= if (ch =3D=3D ']') {=0A= next();=0A= return a;=0A= } else if (ch !=3D ',') {=0A= break;=0A= }=0A= next();=0A= white();=0A= }=0A= }=0A= error("Bad array");=0A= }=0A= =0A= function object() {=0A= var k, o =3D {};=0A= =0A= if (ch =3D=3D '{') {=0A= next();=0A= white();=0A= if (ch =3D=3D '}') {=0A= next();=0A= return o;=0A= }=0A= while (ch) {=0A= k =3D string();=0A= white();=0A= if (ch !=3D ':') {=0A= break;=0A= }=0A= next();=0A= o[k] =3D value();=0A= white();=0A= if (ch =3D=3D '}') {=0A= next();=0A= return o;=0A= } else if (ch !=3D ',') {=0A= break;=0A= }=0A= next();=0A= white();=0A= }=0A= }=0A= error("Bad object");=0A= }=0A= =0A= function number() {=0A= var n =3D '', v;=0A= if (ch =3D=3D '-') {=0A= n =3D '-';=0A= next();=0A= }=0A= while (ch >=3D '0' && ch <=3D '9') {=0A= n +=3D ch;=0A= next();=0A= }=0A= if (ch =3D=3D '.') {=0A= n +=3D '.';=0A= while (next() && ch >=3D '0' && ch <=3D '9') {=0A= n +=3D ch;=0A= }=0A= }=0A= if (ch =3D=3D 'e' || ch =3D=3D 'E') {=0A= n +=3D 'e';=0A= next();=0A= if (ch =3D=3D '-' || ch =3D=3D '+') {=0A= n +=3D ch;=0A= next();=0A= }=0A= while (ch >=3D '0' && ch <=3D '9') {=0A= n +=3D ch;=0A= next();=0A= }=0A= }=0A= v =3D +n;=0A= if (!isFinite(v)) {=0A= ////error("Bad number");=0A= } else {=0A= return v;=0A= }=0A= }=0A= =0A= function word() {=0A= switch (ch) {=0A= case 't':=0A= if (next() =3D=3D 'r' && next() =3D=3D 'u' && = next() =3D=3D 'e') {=0A= next();=0A= return true;=0A= }=0A= break;=0A= case 'f':=0A= if (next() =3D=3D 'a' && next() =3D=3D 'l' && = next() =3D=3D 's' &&=0A= next() =3D=3D 'e') {=0A= next();=0A= return false;=0A= }=0A= break;=0A= case 'n':=0A= if (next() =3D=3D 'u' && next() =3D=3D 'l' && = next() =3D=3D 'l') {=0A= next();=0A= return null;=0A= }=0A= break;=0A= }=0A= error("Syntax error");=0A= }=0A= =0A= function value() {=0A= white();=0A= switch (ch) {=0A= case '{':=0A= return object();=0A= case '[':=0A= return array();=0A= case '"':=0A= return string();=0A= case '-':=0A= return number();=0A= default:=0A= return ch >=3D '0' && ch <=3D '9' ? number() : = word();=0A= }=0A= }=0A= =0A= return value();=0A= }=0A= };=0A= }(); ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.wired.com/js/comments/prototype.js /* Prototype JavaScript framework, version 1.5.0=0A= * (c) 2005-2007 Sam Stephenson=0A= *=0A= * Prototype is freely distributable under the terms of an MIT-style = license.=0A= * For details, see the Prototype web site: http://prototype.conio.net/=0A= *=0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var Prototype =3D {=0A= Version: '1.5.0',=0A= BrowserFeatures: {=0A= XPath: !!document.evaluate=0A= },=0A= =0A= ScriptFragment: '(?:)((\n|\r|.)*?)(?:<\/script>)',=0A= emptyFunction: function() {},=0A= K: function(x) { return x }=0A= }=0A= =0A= var Class =3D {=0A= create: function() {=0A= return function() {=0A= this.initialize.apply(this, arguments);=0A= }=0A= }=0A= }=0A= =0A= var Abstract =3D new Object();=0A= =0A= Object.extend =3D function(destination, source) {=0A= for (var property in source) {=0A= destination[property] =3D source[property];=0A= }=0A= return destination;=0A= }=0A= =0A= Object.extend(Object, {=0A= inspect: function(object) {=0A= try {=0A= if (object =3D=3D=3D undefined) return 'undefined';=0A= if (object =3D=3D=3D null) return 'null';=0A= return object.inspect ? object.inspect() : object.toString();=0A= } catch (e) {=0A= if (e instanceof RangeError) return '...';=0A= throw e;=0A= }=0A= },=0A= =0A= keys: function(object) {=0A= var keys =3D [];=0A= for (var property in object)=0A= keys.push(property);=0A= return keys;=0A= },=0A= =0A= values: function(object) {=0A= var values =3D [];=0A= for (var property in object)=0A= values.push(object[property]);=0A= return values;=0A= },=0A= =0A= clone: function(object) {=0A= return Object.extend({}, object);=0A= }=0A= });=0A= =0A= Function.prototype.bind =3D function() {=0A= var __method =3D this, args =3D $A(arguments), object =3D args.shift();=0A= return function() {=0A= return __method.apply(object, args.concat($A(arguments)));=0A= }=0A= }=0A= =0A= Function.prototype.bindAsEventListener =3D function(object) {=0A= var __method =3D this, args =3D $A(arguments), object =3D args.shift();=0A= return function(event) {=0A= return __method.apply(object, [( event || = window.event)].concat(args).concat($A(arguments)));=0A= }=0A= }=0A= =0A= Object.extend(Number.prototype, {=0A= toColorPart: function() {=0A= var digits =3D this.toString(16);=0A= if (this < 16) return '0' + digits;=0A= return digits;=0A= },=0A= =0A= succ: function() {=0A= return this + 1;=0A= },=0A= =0A= times: function(iterator) {=0A= $R(0, this, true).each(iterator);=0A= return this;=0A= }=0A= });=0A= =0A= var Try =3D {=0A= these: function() {=0A= var returnValue;=0A= =0A= for (var i =3D 0, length =3D arguments.length; i < length; i++) {=0A= var lambda =3D arguments[i];=0A= try {=0A= returnValue =3D lambda();=0A= break;=0A= } catch (e) {}=0A= }=0A= =0A= return returnValue;=0A= }=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= var PeriodicalExecuter =3D Class.create();=0A= PeriodicalExecuter.prototype =3D {=0A= initialize: function(callback, frequency) {=0A= this.callback =3D callback;=0A= this.frequency =3D frequency;=0A= this.currentlyExecuting =3D false;=0A= =0A= this.registerCallback();=0A= },=0A= =0A= registerCallback: function() {=0A= this.timer =3D setInterval(this.onTimerEvent.bind(this), = this.frequency * 1000);=0A= },=0A= =0A= stop: function() {=0A= if (!this.timer) return;=0A= clearInterval(this.timer);=0A= this.timer =3D null;=0A= },=0A= =0A= onTimerEvent: function() {=0A= if (!this.currentlyExecuting) {=0A= try {=0A= this.currentlyExecuting =3D true;=0A= this.callback(this);=0A= } finally {=0A= this.currentlyExecuting =3D false;=0A= }=0A= }=0A= }=0A= }=0A= String.interpret =3D function(value){=0A= return value =3D=3D null ? '' : String(value);=0A= }=0A= =0A= Object.extend(String.prototype, {=0A= gsub: function(pattern, replacement) {=0A= var result =3D '', source =3D this, match;=0A= replacement =3D arguments.callee.prepareReplacement(replacement);=0A= =0A= while (source.length > 0) {=0A= if (match =3D source.match(pattern)) {=0A= result +=3D source.slice(0, match.index);=0A= result +=3D String.interpret(replacement(match));=0A= source =3D source.slice(match.index + match[0].length);=0A= } else {=0A= result +=3D source, source =3D '';=0A= }=0A= }=0A= return result;=0A= },=0A= =0A= sub: function(pattern, replacement, count) {=0A= replacement =3D this.gsub.prepareReplacement(replacement);=0A= count =3D count =3D=3D=3D undefined ? 1 : count;=0A= =0A= return this.gsub(pattern, function(match) {=0A= if (--count < 0) return match[0];=0A= return replacement(match);=0A= });=0A= },=0A= =0A= scan: function(pattern, iterator) {=0A= this.gsub(pattern, iterator);=0A= return this;=0A= },=0A= =0A= truncate: function(length, truncation) {=0A= length =3D length || 30;=0A= truncation =3D truncation =3D=3D=3D undefined ? '...' : truncation;=0A= return this.length > length ?=0A= this.slice(0, length - truncation.length) + truncation : this;=0A= },=0A= =0A= strip: function() {=0A= return this.replace(/^\s+/, '').replace(/\s+$/, '');=0A= },=0A= =0A= stripTags: function() {=0A= return this.replace(/<\/?[^>]+>/gi, '');=0A= },=0A= =0A= stripScripts: function() {=0A= return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');=0A= },=0A= =0A= extractScripts: function() {=0A= var matchAll =3D new RegExp(Prototype.ScriptFragment, 'img');=0A= var matchOne =3D new RegExp(Prototype.ScriptFragment, 'im');=0A= return (this.match(matchAll) || []).map(function(scriptTag) {=0A= return (scriptTag.match(matchOne) || ['', ''])[1];=0A= });=0A= },=0A= =0A= evalScripts: function() {=0A= return this.extractScripts().map(function(script) { return = eval(script) });=0A= },=0A= =0A= escapeHTML: function() {=0A= var div =3D document.createElement('div');=0A= var text =3D document.createTextNode(this);=0A= div.appendChild(text);=0A= return div.innerHTML;=0A= },=0A= =0A= unescapeHTML: function() {=0A= var div =3D document.createElement('div');=0A= div.innerHTML =3D this.stripTags();=0A= return div.childNodes[0] ? (div.childNodes.length > 1 ?=0A= $A(div.childNodes).inject('',function(memo,node){ return = memo+node.nodeValue }) :=0A= div.childNodes[0].nodeValue) : '';=0A= },=0A= =0A= toQueryParams: function(separator) {=0A= var match =3D this.strip().match(/([^?#]*)(#.*)?$/);=0A= if (!match) return {};=0A= =0A= return match[1].split(separator || '&').inject({}, function(hash, = pair) {=0A= if ((pair =3D pair.split('=3D'))[0]) {=0A= var name =3D decodeURIComponent(pair[0]);=0A= var value =3D pair[1] ? decodeURIComponent(pair[1]) : undefined;=0A= =0A= if (hash[name] !=3D=3D undefined) {=0A= if (hash[name].constructor !=3D Array)=0A= hash[name] =3D [hash[name]];=0A= if (value) hash[name].push(value);=0A= }=0A= else hash[name] =3D value;=0A= }=0A= return hash;=0A= });=0A= },=0A= =0A= toArray: function() {=0A= return this.split('');=0A= },=0A= =0A= succ: function() {=0A= return this.slice(0, this.length - 1) +=0A= String.fromCharCode(this.charCodeAt(this.length - 1) + 1);=0A= },=0A= =0A= camelize: function() {=0A= var parts =3D this.split('-'), len =3D parts.length;=0A= if (len =3D=3D 1) return parts[0];=0A= =0A= var camelized =3D this.charAt(0) =3D=3D '-'=0A= ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)=0A= : parts[0];=0A= =0A= for (var i =3D 1; i < len; i++)=0A= camelized +=3D parts[i].charAt(0).toUpperCase() + = parts[i].substring(1);=0A= =0A= return camelized;=0A= },=0A= =0A= capitalize: function(){=0A= return this.charAt(0).toUpperCase() + = this.substring(1).toLowerCase();=0A= },=0A= =0A= underscore: function() {=0A= return this.gsub(/::/, = '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{= 1}_#{2}').gsub(/-/,'_').toLowerCase();=0A= },=0A= =0A= dasherize: function() {=0A= return this.gsub(/_/,'-');=0A= },=0A= =0A= inspect: function(useDoubleQuotes) {=0A= var escapedString =3D this.replace(/\\/g, '\\\\');=0A= if (useDoubleQuotes)=0A= return '"' + escapedString.replace(/"/g, '\\"') + '"';=0A= else=0A= return "'" + escapedString.replace(/'/g, '\\\'') + "'";=0A= }=0A= });=0A= =0A= String.prototype.gsub.prepareReplacement =3D function(replacement) {=0A= if (typeof replacement =3D=3D 'function') return replacement;=0A= var template =3D new Template(replacement);=0A= return function(match) { return template.evaluate(match) };=0A= }=0A= =0A= String.prototype.parseQuery =3D String.prototype.toQueryParams;=0A= =0A= var Template =3D Class.create();=0A= Template.Pattern =3D /(^|.|\r|\n)(#\{(.*?)\})/;=0A= Template.prototype =3D {=0A= initialize: function(template, pattern) {=0A= this.template =3D template.toString();=0A= this.pattern =3D pattern || Template.Pattern;=0A= },=0A= =0A= evaluate: function(object) {=0A= return this.template.gsub(this.pattern, function(match) {=0A= var before =3D match[1];=0A= if (before =3D=3D '\\') return match[2];=0A= return before + String.interpret(object[match[3]]);=0A= });=0A= }=0A= }=0A= =0A= var $break =3D new Object();=0A= var $continue =3D new Object();=0A= =0A= var Enumerable =3D {=0A= each: function(iterator) {=0A= var index =3D 0;=0A= try {=0A= this._each(function(value) {=0A= try {=0A= iterator(value, index++);=0A= } catch (e) {=0A= if (e !=3D $continue) throw e;=0A= }=0A= });=0A= } catch (e) {=0A= if (e !=3D $break) throw e;=0A= }=0A= return this;=0A= },=0A= =0A= eachSlice: function(number, iterator) {=0A= var index =3D -number, slices =3D [], array =3D this.toArray();=0A= while ((index +=3D number) < array.length)=0A= slices.push(array.slice(index, index+number));=0A= return slices.map(iterator);=0A= },=0A= =0A= all: function(iterator) {=0A= var result =3D true;=0A= this.each(function(value, index) {=0A= result =3D result && !!(iterator || Prototype.K)(value, index);=0A= if (!result) throw $break;=0A= });=0A= return result;=0A= },=0A= =0A= any: function(iterator) {=0A= var result =3D false;=0A= this.each(function(value, index) {=0A= if (result =3D !!(iterator || Prototype.K)(value, index))=0A= throw $break;=0A= });=0A= return result;=0A= },=0A= =0A= collect: function(iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= results.push((iterator || Prototype.K)(value, index));=0A= });=0A= return results;=0A= },=0A= =0A= detect: function(iterator) {=0A= var result;=0A= this.each(function(value, index) {=0A= if (iterator(value, index)) {=0A= result =3D value;=0A= throw $break;=0A= }=0A= });=0A= return result;=0A= },=0A= =0A= findAll: function(iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= if (iterator(value, index))=0A= results.push(value);=0A= });=0A= return results;=0A= },=0A= =0A= grep: function(pattern, iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= var stringValue =3D value.toString();=0A= if (stringValue.match(pattern))=0A= results.push((iterator || Prototype.K)(value, index));=0A= })=0A= return results;=0A= },=0A= =0A= include: function(object) {=0A= var found =3D false;=0A= this.each(function(value) {=0A= if (value =3D=3D object) {=0A= found =3D true;=0A= throw $break;=0A= }=0A= });=0A= return found;=0A= },=0A= =0A= inGroupsOf: function(number, fillWith) {=0A= fillWith =3D fillWith =3D=3D=3D undefined ? null : fillWith;=0A= return this.eachSlice(number, function(slice) {=0A= while(slice.length < number) slice.push(fillWith);=0A= return slice;=0A= });=0A= },=0A= =0A= inject: function(memo, iterator) {=0A= this.each(function(value, index) {=0A= memo =3D iterator(memo, value, index);=0A= });=0A= return memo;=0A= },=0A= =0A= invoke: function(method) {=0A= var args =3D $A(arguments).slice(1);=0A= return this.map(function(value) {=0A= return value[method].apply(value, args);=0A= });=0A= },=0A= =0A= max: function(iterator) {=0A= var result;=0A= this.each(function(value, index) {=0A= value =3D (iterator || Prototype.K)(value, index);=0A= if (result =3D=3D undefined || value >=3D result)=0A= result =3D value;=0A= });=0A= return result;=0A= },=0A= =0A= min: function(iterator) {=0A= var result;=0A= this.each(function(value, index) {=0A= value =3D (iterator || Prototype.K)(value, index);=0A= if (result =3D=3D undefined || value < result)=0A= result =3D value;=0A= });=0A= return result;=0A= },=0A= =0A= partition: function(iterator) {=0A= var trues =3D [], falses =3D [];=0A= this.each(function(value, index) {=0A= ((iterator || Prototype.K)(value, index) ?=0A= trues : falses).push(value);=0A= });=0A= return [trues, falses];=0A= },=0A= =0A= pluck: function(property) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= results.push(value[property]);=0A= });=0A= return results;=0A= },=0A= =0A= reject: function(iterator) {=0A= var results =3D [];=0A= this.each(function(value, index) {=0A= if (!iterator(value, index))=0A= results.push(value);=0A= });=0A= return results;=0A= },=0A= =0A= sortBy: function(iterator) {=0A= return this.map(function(value, index) {=0A= return {value: value, criteria: iterator(value, index)};=0A= }).sort(function(left, right) {=0A= var a =3D left.criteria, b =3D right.criteria;=0A= return a < b ? -1 : a > b ? 1 : 0;=0A= }).pluck('value');=0A= },=0A= =0A= toArray: function() {=0A= return this.map();=0A= },=0A= =0A= zip: function() {=0A= var iterator =3D Prototype.K, args =3D $A(arguments);=0A= if (typeof args.last() =3D=3D 'function')=0A= iterator =3D args.pop();=0A= =0A= var collections =3D [this].concat(args).map($A);=0A= return this.map(function(value, index) {=0A= return iterator(collections.pluck(index));=0A= });=0A= },=0A= =0A= size: function() {=0A= return this.toArray().length;=0A= },=0A= =0A= inspect: function() {=0A= return '#';=0A= }=0A= }=0A= =0A= Object.extend(Enumerable, {=0A= map: Enumerable.collect,=0A= find: Enumerable.detect,=0A= select: Enumerable.findAll,=0A= member: Enumerable.include,=0A= entries: Enumerable.toArray=0A= });=0A= var $A =3D Array.from =3D function(iterable) {=0A= if (!iterable) return [];=0A= if (iterable.toArray) {=0A= return iterable.toArray();=0A= } else {=0A= var results =3D [];=0A= for (var i =3D 0, length =3D iterable.length; i < length; i++)=0A= results.push(iterable[i]);=0A= return results;=0A= }=0A= }=0A= =0A= Object.extend(Array.prototype, Enumerable);=0A= =0A= if (!Array.prototype._reverse)=0A= Array.prototype._reverse =3D Array.prototype.reverse;=0A= =0A= Object.extend(Array.prototype, {=0A= _each: function(iterator) {=0A= for (var i =3D 0, length =3D this.length; i < length; i++)=0A= iterator(this[i]);=0A= },=0A= =0A= clear: function() {=0A= this.length =3D 0;=0A= return this;=0A= },=0A= =0A= first: function() {=0A= return this[0];=0A= },=0A= =0A= last: function() {=0A= return this[this.length - 1];=0A= },=0A= =0A= compact: function() {=0A= return this.select(function(value) {=0A= return value !=3D null;=0A= });=0A= },=0A= =0A= flatten: function() {=0A= return this.inject([], function(array, value) {=0A= return array.concat(value && value.constructor =3D=3D Array ?=0A= value.flatten() : [value]);=0A= });=0A= },=0A= =0A= without: function() {=0A= var values =3D $A(arguments);=0A= return this.select(function(value) {=0A= return !values.include(value);=0A= });=0A= },=0A= =0A= indexOf: function(object) {=0A= for (var i =3D 0, length =3D this.length; i < length; i++)=0A= if (this[i] =3D=3D object) return i;=0A= return -1;=0A= },=0A= =0A= reverse: function(inline) {=0A= return (inline !=3D=3D false ? this : this.toArray())._reverse();=0A= },=0A= =0A= reduce: function() {=0A= return this.length > 1 ? this : this[0];=0A= },=0A= =0A= uniq: function() {=0A= return this.inject([], function(array, value) {=0A= return array.include(value) ? array : array.concat([value]);=0A= });=0A= },=0A= =0A= clone: function() {=0A= return [].concat(this);=0A= },=0A= =0A= size: function() {=0A= return this.length;=0A= },=0A= =0A= inspect: function() {=0A= return '[' + this.map(Object.inspect).join(', ') + ']';=0A= }=0A= });=0A= =0A= Array.prototype.toArray =3D Array.prototype.clone;=0A= =0A= function $w(string){=0A= string =3D string.strip();=0A= return string ? string.split(/\s+/) : [];=0A= }=0A= =0A= if(window.opera){=0A= Array.prototype.concat =3D function(){=0A= var array =3D [];=0A= for(var i =3D 0, length =3D this.length; i < length; i++) = array.push(this[i]);=0A= for(var i =3D 0, length =3D arguments.length; i < length; i++) {=0A= if(arguments[i].constructor =3D=3D Array) {=0A= for(var j =3D 0, arrayLength =3D arguments[i].length; j < = arrayLength; j++)=0A= array.push(arguments[i][j]);=0A= } else {=0A= array.push(arguments[i]);=0A= }=0A= }=0A= return array;=0A= }=0A= }=0A= var Hash =3D function(obj) {=0A= Object.extend(this, obj || {});=0A= };=0A= =0A= Object.extend(Hash, {=0A= toQueryString: function(obj) {=0A= var parts =3D [];=0A= =0A= this.prototype._each.call(obj, function(pair) {=0A= if (!pair.key) return;=0A= =0A= if (pair.value && pair.value.constructor =3D=3D Array) {=0A= var values =3D pair.value.compact();=0A= if (values.length < 2) pair.value =3D values.reduce();=0A= else {=0A= key =3D encodeURIComponent(pair.key);=0A= values.each(function(value) {=0A= value =3D value !=3D undefined ? encodeURIComponent(value) : = '';=0A= parts.push(key + '=3D' + encodeURIComponent(value));=0A= });=0A= return;=0A= }=0A= }=0A= if (pair.value =3D=3D undefined) pair[1] =3D '';=0A= parts.push(pair.map(encodeURIComponent).join('=3D'));=0A= });=0A= =0A= return parts.join('&');=0A= }=0A= });=0A= =0A= Object.extend(Hash.prototype, Enumerable);=0A= Object.extend(Hash.prototype, {=0A= _each: function(iterator) {=0A= for (var key in this) {=0A= var value =3D this[key];=0A= if (value && value =3D=3D Hash.prototype[key]) continue;=0A= =0A= var pair =3D [key, value];=0A= pair.key =3D key;=0A= pair.value =3D value;=0A= iterator(pair);=0A= }=0A= },=0A= =0A= keys: function() {=0A= return this.pluck('key');=0A= },=0A= =0A= values: function() {=0A= return this.pluck('value');=0A= },=0A= =0A= merge: function(hash) {=0A= return $H(hash).inject(this, function(mergedHash, pair) {=0A= mergedHash[pair.key] =3D pair.value;=0A= return mergedHash;=0A= });=0A= },=0A= =0A= remove: function() {=0A= var result;=0A= for(var i =3D 0, length =3D arguments.length; i < length; i++) {=0A= var value =3D this[arguments[i]];=0A= if (value !=3D=3D undefined){=0A= if (result =3D=3D=3D undefined) result =3D value;=0A= else {=0A= if (result.constructor !=3D Array) result =3D [result];=0A= result.push(value)=0A= }=0A= }=0A= delete this[arguments[i]];=0A= }=0A= return result;=0A= },=0A= =0A= toQueryString: function() {=0A= return Hash.toQueryString(this);=0A= },=0A= =0A= inspect: function() {=0A= return '#';=0A= }=0A= });=0A= =0A= function $H(object) {=0A= if (object && object.constructor =3D=3D Hash) return object;=0A= return new Hash(object);=0A= };=0A= ObjectRange =3D Class.create();=0A= Object.extend(ObjectRange.prototype, Enumerable);=0A= Object.extend(ObjectRange.prototype, {=0A= initialize: function(start, end, exclusive) {=0A= this.start =3D start;=0A= this.end =3D end;=0A= this.exclusive =3D exclusive;=0A= },=0A= =0A= _each: function(iterator) {=0A= var value =3D this.start;=0A= while (this.include(value)) {=0A= iterator(value);=0A= value =3D value.succ();=0A= }=0A= },=0A= =0A= include: function(value) {=0A= if (value < this.start)=0A= return false;=0A= if (this.exclusive)=0A= return value < this.end;=0A= return value <=3D this.end;=0A= }=0A= });=0A= =0A= var $R =3D function(start, end, exclusive) {=0A= return new ObjectRange(start, end, exclusive);=0A= }=0A= =0A= var Ajax =3D {=0A= getTransport: function() {=0A= return Try.these(=0A= function() {return new XMLHttpRequest()},=0A= function() {return new ActiveXObject('Msxml2.XMLHTTP')},=0A= function() {return new ActiveXObject('Microsoft.XMLHTTP')}=0A= ) || false;=0A= },=0A= =0A= activeRequestCount: 0=0A= }=0A= =0A= Ajax.Responders =3D {=0A= responders: [],=0A= =0A= _each: function(iterator) {=0A= this.responders._each(iterator);=0A= },=0A= =0A= register: function(responder) {=0A= if (!this.include(responder))=0A= this.responders.push(responder);=0A= },=0A= =0A= unregister: function(responder) {=0A= this.responders =3D this.responders.without(responder);=0A= },=0A= =0A= dispatch: function(callback, request, transport, json) {=0A= this.each(function(responder) {=0A= if (typeof responder[callback] =3D=3D 'function') {=0A= try {=0A= responder[callback].apply(responder, [request, transport, = json]);=0A= } catch (e) {}=0A= }=0A= });=0A= }=0A= };=0A= =0A= Object.extend(Ajax.Responders, Enumerable);=0A= =0A= Ajax.Responders.register({=0A= onCreate: function() {=0A= Ajax.activeRequestCount++;=0A= },=0A= onComplete: function() {=0A= Ajax.activeRequestCount--;=0A= }=0A= });=0A= =0A= Ajax.Base =3D function() {};=0A= Ajax.Base.prototype =3D {=0A= setOptions: function(options) {=0A= this.options =3D {=0A= method: 'post',=0A= asynchronous: true,=0A= contentType: 'application/x-www-form-urlencoded',=0A= encoding: 'UTF-8',=0A= parameters: ''=0A= }=0A= Object.extend(this.options, options || {});=0A= =0A= this.options.method =3D this.options.method.toLowerCase();=0A= if (typeof this.options.parameters =3D=3D 'string')=0A= this.options.parameters =3D = this.options.parameters.toQueryParams();=0A= }=0A= }=0A= =0A= Ajax.Request =3D Class.create();=0A= Ajax.Request.Events =3D=0A= ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];=0A= =0A= Ajax.Request.prototype =3D Object.extend(new Ajax.Base(), {=0A= _complete: false,=0A= =0A= initialize: function(url, options) {=0A= this.transport =3D Ajax.getTransport();=0A= this.setOptions(options);=0A= this.request(url);=0A= },=0A= =0A= request: function(url) {=0A= this.url =3D url;=0A= this.method =3D this.options.method;=0A= var params =3D this.options.parameters;=0A= =0A= if (!['get', 'post'].include(this.method)) {=0A= // simulate other verbs over post=0A= params['_method'] =3D this.method;=0A= this.method =3D 'post';=0A= }=0A= =0A= params =3D Hash.toQueryString(params);=0A= if (params && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) = params +=3D '&_=3D'=0A= =0A= // when GET, append parameters to URL=0A= if (this.method =3D=3D 'get' && params)=0A= this.url +=3D (this.url.indexOf('?') > -1 ? '&' : '?') + params;=0A= =0A= try {=0A= Ajax.Responders.dispatch('onCreate', this, this.transport);=0A= =0A= this.transport.open(this.method.toUpperCase(), this.url,=0A= this.options.asynchronous);=0A= =0A= if (this.options.asynchronous)=0A= setTimeout(function() { this.respondToReadyState(1) = }.bind(this), 10);=0A= =0A= this.transport.onreadystatechange =3D = this.onStateChange.bind(this);=0A= this.setRequestHeaders();=0A= =0A= var body =3D this.method =3D=3D 'post' ? (this.options.postBody || = params) : null;=0A= =0A= this.transport.send(body);=0A= =0A= /* Force Firefox to handle ready state 4 for synchronous requests = */=0A= if (!this.options.asynchronous && this.transport.overrideMimeType)=0A= this.onStateChange();=0A= =0A= }=0A= catch (e) {=0A= this.dispatchException(e);=0A= }=0A= },=0A= =0A= onStateChange: function() {=0A= var readyState =3D this.transport.readyState;=0A= if (readyState > 1 && !((readyState =3D=3D 4) && this._complete))=0A= this.respondToReadyState(this.transport.readyState);=0A= },=0A= =0A= setRequestHeaders: function() {=0A= var headers =3D {=0A= 'X-Requested-With': 'XMLHttpRequest',=0A= 'X-Prototype-Version': Prototype.Version,=0A= 'Accept': 'text/javascript, text/html, application/xml, text/xml, = */*'=0A= };=0A= =0A= if (this.method =3D=3D 'post') {=0A= headers['Content-type'] =3D this.options.contentType +=0A= (this.options.encoding ? '; charset=3D' + this.options.encoding = : '');=0A= =0A= /* Force "Connection: close" for older Mozilla browsers to work=0A= * around a bug where XMLHttpRequest sends an incorrect=0A= * Content-length header. See Mozilla Bugzilla #246651.=0A= */=0A= if (this.transport.overrideMimeType &&=0A= (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < = 2005)=0A= headers['Connection'] =3D 'close';=0A= }=0A= =0A= // user-defined headers=0A= if (typeof this.options.requestHeaders =3D=3D 'object') {=0A= var extras =3D this.options.requestHeaders;=0A= =0A= if (typeof extras.push =3D=3D 'function')=0A= for (var i =3D 0, length =3D extras.length; i < length; i +=3D 2)=0A= headers[extras[i]] =3D extras[i+1];=0A= else=0A= $H(extras).each(function(pair) { headers[pair.key] =3D = pair.value });=0A= }=0A= =0A= for (var name in headers)=0A= this.transport.setRequestHeader(name, headers[name]);=0A= },=0A= =0A= success: function() {=0A= return !this.transport.status=0A= || (this.transport.status >=3D 200 && this.transport.status < = 300);=0A= },=0A= =0A= respondToReadyState: function(readyState) {=0A= var state =3D Ajax.Request.Events[readyState];=0A= var transport =3D this.transport, json =3D this.evalJSON();=0A= =0A= if (state =3D=3D 'Complete') {=0A= try {=0A= this._complete =3D true;=0A= (this.options['on' + this.transport.status]=0A= || this.options['on' + (this.success() ? 'Success' : 'Failure')]=0A= || Prototype.emptyFunction)(transport, json);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= =0A= if ((this.getHeader('Content-type') || 'text/javascript').strip().=0A= match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i))=0A= this.evalResponse();=0A= }=0A= =0A= try {=0A= (this.options['on' + state] || Prototype.emptyFunction)(transport, = json);=0A= Ajax.Responders.dispatch('on' + state, this, transport, json);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= =0A= if (state =3D=3D 'Complete') {=0A= // avoid memory leak in MSIE: clean up=0A= this.transport.onreadystatechange =3D Prototype.emptyFunction;=0A= }=0A= },=0A= =0A= getHeader: function(name) {=0A= try {=0A= return this.transport.getResponseHeader(name);=0A= } catch (e) { return null }=0A= },=0A= =0A= evalJSON: function() {=0A= try {=0A= var json =3D this.getHeader('X-JSON');=0A= return json ? eval('(' + json + ')') : null;=0A= } catch (e) { return null }=0A= },=0A= =0A= evalResponse: function() {=0A= try {=0A= return eval(this.transport.responseText);=0A= } catch (e) {=0A= this.dispatchException(e);=0A= }=0A= },=0A= =0A= dispatchException: function(exception) {=0A= (this.options.onException || Prototype.emptyFunction)(this, = exception);=0A= Ajax.Responders.dispatch('onException', this, exception);=0A= }=0A= });=0A= =0A= Ajax.Updater =3D Class.create();=0A= =0A= Object.extend(Object.extend(Ajax.Updater.prototype, = Ajax.Request.prototype), {=0A= initialize: function(container, url, options) {=0A= this.container =3D {=0A= success: (container.success || container),=0A= failure: (container.failure || (container.success ? null : = container))=0A= }=0A= =0A= this.transport =3D Ajax.getTransport();=0A= this.setOptions(options);=0A= =0A= var onComplete =3D this.options.onComplete || = Prototype.emptyFunction;=0A= this.options.onComplete =3D (function(transport, param) {=0A= this.updateContent();=0A= onComplete(transport, param);=0A= }).bind(this);=0A= =0A= this.request(url);=0A= },=0A= =0A= updateContent: function() {=0A= var receiver =3D this.container[this.success() ? 'success' : = 'failure'];=0A= var response =3D this.transport.responseText;=0A= =0A= if (!this.options.evalScripts) response =3D response.stripScripts();=0A= =0A= if (receiver =3D $(receiver)) {=0A= if (this.options.insertion)=0A= new this.options.insertion(receiver, response);=0A= else=0A= receiver.update(response);=0A= }=0A= =0A= if (this.success()) {=0A= if (this.onComplete)=0A= setTimeout(this.onComplete.bind(this), 10);=0A= }=0A= }=0A= });=0A= =0A= Ajax.PeriodicalUpdater =3D Class.create();=0A= Ajax.PeriodicalUpdater.prototype =3D Object.extend(new Ajax.Base(), {=0A= initialize: function(container, url, options) {=0A= this.setOptions(options);=0A= this.onComplete =3D this.options.onComplete;=0A= =0A= this.frequency =3D (this.options.frequency || 2);=0A= this.decay =3D (this.options.decay || 1);=0A= =0A= this.updater =3D {};=0A= this.container =3D container;=0A= this.url =3D url;=0A= =0A= this.start();=0A= },=0A= =0A= start: function() {=0A= this.options.onComplete =3D this.updateComplete.bind(this);=0A= this.onTimerEvent();=0A= },=0A= =0A= stop: function() {=0A= this.updater.options.onComplete =3D undefined;=0A= clearTimeout(this.timer);=0A= (this.onComplete || Prototype.emptyFunction).apply(this, arguments);=0A= },=0A= =0A= updateComplete: function(request) {=0A= if (this.options.decay) {=0A= this.decay =3D (request.responseText =3D=3D this.lastText ?=0A= this.decay * this.options.decay : 1);=0A= =0A= this.lastText =3D request.responseText;=0A= }=0A= this.timer =3D setTimeout(this.onTimerEvent.bind(this),=0A= this.decay * this.frequency * 1000);=0A= },=0A= =0A= onTimerEvent: function() {=0A= this.updater =3D new Ajax.Updater(this.container, this.url, = this.options);=0A= }=0A= });=0A= function $(element) {=0A= if (arguments.length > 1) {=0A= for (var i =3D 0, elements =3D [], length =3D arguments.length; i < = length; i++)=0A= elements.push($(arguments[i]));=0A= return elements;=0A= }=0A= if (typeof element =3D=3D 'string')=0A= element =3D document.getElementById(element);=0A= return Element.extend(element);=0A= }=0A= =0A= if (Prototype.BrowserFeatures.XPath) {=0A= document._getElementsByXPath =3D function(expression, parentElement) {=0A= var results =3D [];=0A= var query =3D document.evaluate(expression, $(parentElement) || = document,=0A= null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);=0A= for (var i =3D 0, length =3D query.snapshotLength; i < length; i++)=0A= results.push(query.snapshotItem(i));=0A= return results;=0A= };=0A= }=0A= =0A= document.getElementsByClassName =3D function(className, parentElement) {=0A= if (Prototype.BrowserFeatures.XPath) {=0A= var q =3D ".//*[contains(concat(' ', @class, ' '), ' " + className + = " ')]";=0A= return document._getElementsByXPath(q, parentElement);=0A= } else {=0A= var children =3D ($(parentElement) || = document.body).getElementsByTagName('*');=0A= var elements =3D [], child;=0A= for (var i =3D 0, length =3D children.length; i < length; i++) {=0A= child =3D children[i];=0A= if (Element.hasClassName(child, className))=0A= elements.push(Element.extend(child));=0A= }=0A= return elements;=0A= }=0A= };=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= if (!window.Element)=0A= var Element =3D new Object();=0A= =0A= Element.extend =3D function(element) {=0A= if (!element || _nativeExtensions || element.nodeType =3D=3D 3) return = element;=0A= =0A= if (!element._extended && element.tagName && element !=3D window) {=0A= var methods =3D Object.clone(Element.Methods), cache =3D = Element.extend.cache;=0A= =0A= if (element.tagName =3D=3D 'FORM')=0A= Object.extend(methods, Form.Methods);=0A= if (['INPUT', 'TEXTAREA', 'SELECT'].include(element.tagName))=0A= Object.extend(methods, Form.Element.Methods);=0A= =0A= Object.extend(methods, Element.Methods.Simulated);=0A= =0A= for (var property in methods) {=0A= var value =3D methods[property];=0A= if (typeof value =3D=3D 'function' && !(property in element))=0A= element[property] =3D cache.findOrStore(value);=0A= }=0A= }=0A= =0A= element._extended =3D true;=0A= return element;=0A= };=0A= =0A= Element.extend.cache =3D {=0A= findOrStore: function(value) {=0A= return this[value] =3D this[value] || function() {=0A= return value.apply(null, [this].concat($A(arguments)));=0A= }=0A= }=0A= };=0A= =0A= Element.Methods =3D {=0A= visible: function(element) {=0A= return $(element).style.display !=3D 'none';=0A= },=0A= =0A= toggle: function(element) {=0A= element =3D $(element);=0A= Element[Element.visible(element) ? 'hide' : 'show'](element);=0A= return element;=0A= },=0A= =0A= hide: function(element) {=0A= $(element).style.display =3D 'none';=0A= return element;=0A= },=0A= =0A= show: function(element) {=0A= $(element).style.display =3D '';=0A= return element;=0A= },=0A= =0A= remove: function(element) {=0A= element =3D $(element);=0A= element.parentNode.removeChild(element);=0A= return element;=0A= },=0A= =0A= update: function(element, html) {=0A= html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A= $(element).innerHTML =3D html.stripScripts();=0A= setTimeout(function() {html.evalScripts()}, 10);=0A= return element;=0A= },=0A= =0A= replace: function(element, html) {=0A= element =3D $(element);=0A= html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A= if (element.outerHTML) {=0A= element.outerHTML =3D html.stripScripts();=0A= } else {=0A= var range =3D element.ownerDocument.createRange();=0A= range.selectNodeContents(element);=0A= element.parentNode.replaceChild(=0A= range.createContextualFragment(html.stripScripts()), element);=0A= }=0A= setTimeout(function() {html.evalScripts()}, 10);=0A= return element;=0A= },=0A= =0A= inspect: function(element) {=0A= element =3D $(element);=0A= var result =3D '<' + element.tagName.toLowerCase();=0A= $H({'id': 'id', 'className': 'class'}).each(function(pair) {=0A= var property =3D pair.first(), attribute =3D pair.last();=0A= var value =3D (element[property] || '').toString();=0A= if (value) result +=3D ' ' + attribute + '=3D' + = value.inspect(true);=0A= });=0A= return result + '>';=0A= },=0A= =0A= recursivelyCollect: function(element, property) {=0A= element =3D $(element);=0A= var elements =3D [];=0A= while (element =3D element[property])=0A= if (element.nodeType =3D=3D 1)=0A= elements.push(Element.extend(element));=0A= return elements;=0A= },=0A= =0A= ancestors: function(element) {=0A= return $(element).recursivelyCollect('parentNode');=0A= },=0A= =0A= descendants: function(element) {=0A= return $A($(element).getElementsByTagName('*'));=0A= },=0A= =0A= immediateDescendants: function(element) {=0A= if (!(element =3D $(element).firstChild)) return [];=0A= while (element && element.nodeType !=3D 1) element =3D = element.nextSibling;=0A= if (element) return [element].concat($(element).nextSiblings());=0A= return [];=0A= },=0A= =0A= previousSiblings: function(element) {=0A= return $(element).recursivelyCollect('previousSibling');=0A= },=0A= =0A= nextSiblings: function(element) {=0A= return $(element).recursivelyCollect('nextSibling');=0A= },=0A= =0A= siblings: function(element) {=0A= element =3D $(element);=0A= return = element.previousSiblings().reverse().concat(element.nextSiblings());=0A= },=0A= =0A= match: function(element, selector) {=0A= if (typeof selector =3D=3D 'string')=0A= selector =3D new Selector(selector);=0A= return selector.match($(element));=0A= },=0A= =0A= up: function(element, expression, index) {=0A= return Selector.findElement($(element).ancestors(), expression, = index);=0A= },=0A= =0A= down: function(element, expression, index) {=0A= return Selector.findElement($(element).descendants(), expression, = index);=0A= },=0A= =0A= previous: function(element, expression, index) {=0A= return Selector.findElement($(element).previousSiblings(), = expression, index);=0A= },=0A= =0A= next: function(element, expression, index) {=0A= return Selector.findElement($(element).nextSiblings(), expression, = index);=0A= },=0A= =0A= getElementsBySelector: function() {=0A= var args =3D $A(arguments), element =3D $(args.shift());=0A= return Selector.findChildElements(element, args);=0A= },=0A= =0A= getElementsByClassName: function(element, className) {=0A= return document.getElementsByClassName(className, element);=0A= },=0A= =0A= readAttribute: function(element, name) {=0A= element =3D $(element);=0A= if (document.all && !window.opera) {=0A= var t =3D Element._attributeTranslations;=0A= if (t.values[name]) return t.values[name](element, name);=0A= if (t.names[name]) name =3D t.names[name];=0A= var attribute =3D element.attributes[name];=0A= if(attribute) return attribute.nodeValue;=0A= }=0A= return element.getAttribute(name);=0A= },=0A= =0A= getHeight: function(element) {=0A= return $(element).getDimensions().height;=0A= },=0A= =0A= getWidth: function(element) {=0A= return $(element).getDimensions().width;=0A= },=0A= =0A= classNames: function(element) {=0A= return new Element.ClassNames(element);=0A= },=0A= =0A= hasClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= var elementClassName =3D element.className;=0A= if (elementClassName.length =3D=3D 0) return false;=0A= if (elementClassName =3D=3D className ||=0A= elementClassName.match(new RegExp("(^|\\s)" + className + = "(\\s|$)")))=0A= return true;=0A= return false;=0A= },=0A= =0A= addClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= Element.classNames(element).add(className);=0A= return element;=0A= },=0A= =0A= removeClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= Element.classNames(element).remove(className);=0A= return element;=0A= },=0A= =0A= toggleClassName: function(element, className) {=0A= if (!(element =3D $(element))) return;=0A= Element.classNames(element)[element.hasClassName(className) ? = 'remove' : 'add'](className);=0A= return element;=0A= },=0A= =0A= observe: function() {=0A= Event.observe.apply(Event, arguments);=0A= return $A(arguments).first();=0A= },=0A= =0A= stopObserving: function() {=0A= Event.stopObserving.apply(Event, arguments);=0A= return $A(arguments).first();=0A= },=0A= =0A= // removes whitespace-only text node children=0A= cleanWhitespace: function(element) {=0A= element =3D $(element);=0A= var node =3D element.firstChild;=0A= while (node) {=0A= var nextNode =3D node.nextSibling;=0A= if (node.nodeType =3D=3D 3 && !/\S/.test(node.nodeValue))=0A= element.removeChild(node);=0A= node =3D nextNode;=0A= }=0A= return element;=0A= },=0A= =0A= empty: function(element) {=0A= return $(element).innerHTML.match(/^\s*$/);=0A= },=0A= =0A= descendantOf: function(element, ancestor) {=0A= element =3D $(element), ancestor =3D $(ancestor);=0A= while (element =3D element.parentNode)=0A= if (element =3D=3D ancestor) return true;=0A= return false;=0A= },=0A= =0A= scrollTo: function(element) {=0A= element =3D $(element);=0A= var pos =3D Position.cumulativeOffset(element);=0A= window.scrollTo(pos[0], pos[1]);=0A= return element;=0A= },=0A= =0A= getStyle: function(element, style) {=0A= element =3D $(element);=0A= if (['float','cssFloat'].include(style))=0A= style =3D (typeof element.style.styleFloat !=3D 'undefined' ? = 'styleFloat' : 'cssFloat');=0A= style =3D style.camelize();=0A= var value =3D element.style[style];=0A= if (!value) {=0A= if (document.defaultView && document.defaultView.getComputedStyle) = {=0A= var css =3D document.defaultView.getComputedStyle(element, null);=0A= value =3D css ? css[style] : null;=0A= } else if (element.currentStyle) {=0A= value =3D element.currentStyle[style];=0A= }=0A= }=0A= =0A= if((value =3D=3D 'auto') && ['width','height'].include(style) && = (element.getStyle('display') !=3D 'none'))=0A= value =3D element['offset'+style.capitalize()] + 'px';=0A= =0A= if (window.opera && ['left', 'top', 'right', = 'bottom'].include(style))=0A= if (Element.getStyle(element, 'position') =3D=3D 'static') value = =3D 'auto';=0A= if(style =3D=3D 'opacity') {=0A= if(value) return parseFloat(value);=0A= if(value =3D (element.getStyle('filter') || = '').match(/alpha\(opacity=3D(.*)\)/))=0A= if(value[1]) return parseFloat(value[1]) / 100;=0A= return 1.0;=0A= }=0A= return value =3D=3D 'auto' ? null : value;=0A= },=0A= =0A= setStyle: function(element, style) {=0A= element =3D $(element);=0A= for (var name in style) {=0A= var value =3D style[name];=0A= if(name =3D=3D 'opacity') {=0A= if (value =3D=3D 1) {=0A= value =3D (/Gecko/.test(navigator.userAgent) &&=0A= !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? = 0.999999 : 1.0;=0A= if(/MSIE/.test(navigator.userAgent) && !window.opera)=0A= element.style.filter =3D = element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');=0A= } else if(value =3D=3D '') {=0A= if(/MSIE/.test(navigator.userAgent) && !window.opera)=0A= element.style.filter =3D = element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');=0A= } else {=0A= if(value < 0.00001) value =3D 0;=0A= if(/MSIE/.test(navigator.userAgent) && !window.opera)=0A= element.style.filter =3D = element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'') +=0A= 'alpha(opacity=3D'+value*100+')';=0A= }=0A= } else if(['float','cssFloat'].include(name)) name =3D (typeof = element.style.styleFloat !=3D 'undefined') ? 'styleFloat' : 'cssFloat';=0A= element.style[name.camelize()] =3D value;=0A= }=0A= return element;=0A= },=0A= =0A= getDimensions: function(element) {=0A= element =3D $(element);=0A= var display =3D $(element).getStyle('display');=0A= if (display !=3D 'none' && display !=3D null) // Safari bug=0A= return {width: element.offsetWidth, height: element.offsetHeight};=0A= =0A= // All *Width and *Height properties give 0 on elements with display = none,=0A= // so enable the element temporarily=0A= var els =3D element.style;=0A= var originalVisibility =3D els.visibility;=0A= var originalPosition =3D els.position;=0A= var originalDisplay =3D els.display;=0A= els.visibility =3D 'hidden';=0A= els.position =3D 'absolute';=0A= els.display =3D 'block';=0A= var originalWidth =3D element.clientWidth;=0A= var originalHeight =3D element.clientHeight;=0A= els.display =3D originalDisplay;=0A= els.position =3D originalPosition;=0A= els.visibility =3D originalVisibility;=0A= return {width: originalWidth, height: originalHeight};=0A= },=0A= =0A= makePositioned: function(element) {=0A= element =3D $(element);=0A= var pos =3D Element.getStyle(element, 'position');=0A= if (pos =3D=3D 'static' || !pos) {=0A= element._madePositioned =3D true;=0A= element.style.position =3D 'relative';=0A= // Opera returns the offset relative to the positioning context, = when an=0A= // element is position relative but top and left have not been = defined=0A= if (window.opera) {=0A= element.style.top =3D 0;=0A= element.style.left =3D 0;=0A= }=0A= }=0A= return element;=0A= },=0A= =0A= undoPositioned: function(element) {=0A= element =3D $(element);=0A= if (element._madePositioned) {=0A= element._madePositioned =3D undefined;=0A= element.style.position =3D=0A= element.style.top =3D=0A= element.style.left =3D=0A= element.style.bottom =3D=0A= element.style.right =3D '';=0A= }=0A= return element;=0A= },=0A= =0A= makeClipping: function(element) {=0A= element =3D $(element);=0A= if (element._overflow) return element;=0A= element._overflow =3D element.style.overflow || 'auto';=0A= if ((Element.getStyle(element, 'overflow') || 'visible') !=3D = 'hidden')=0A= element.style.overflow =3D 'hidden';=0A= return element;=0A= },=0A= =0A= undoClipping: function(element) {=0A= element =3D $(element);=0A= if (!element._overflow) return element;=0A= element.style.overflow =3D element._overflow =3D=3D 'auto' ? '' : = element._overflow;=0A= element._overflow =3D null;=0A= return element;=0A= }=0A= };=0A= =0A= Object.extend(Element.Methods, {childOf: Element.Methods.descendantOf});=0A= =0A= Element._attributeTranslations =3D {};=0A= =0A= Element._attributeTranslations.names =3D {=0A= colspan: "colSpan",=0A= rowspan: "rowSpan",=0A= valign: "vAlign",=0A= datetime: "dateTime",=0A= accesskey: "accessKey",=0A= tabindex: "tabIndex",=0A= enctype: "encType",=0A= maxlength: "maxLength",=0A= readonly: "readOnly",=0A= longdesc: "longDesc"=0A= };=0A= =0A= Element._attributeTranslations.values =3D {=0A= _getAttr: function(element, attribute) {=0A= return element.getAttribute(attribute, 2);=0A= },=0A= =0A= _flag: function(element, attribute) {=0A= return $(element).hasAttribute(attribute) ? attribute : null;=0A= },=0A= =0A= style: function(element) {=0A= return element.style.cssText.toLowerCase();=0A= },=0A= =0A= title: function(element) {=0A= var node =3D element.getAttributeNode('title');=0A= return node.specified ? node.nodeValue : null;=0A= }=0A= };=0A= =0A= Object.extend(Element._attributeTranslations.values, {=0A= href: Element._attributeTranslations.values._getAttr,=0A= src: Element._attributeTranslations.values._getAttr,=0A= disabled: Element._attributeTranslations.values._flag,=0A= checked: Element._attributeTranslations.values._flag,=0A= readonly: Element._attributeTranslations.values._flag,=0A= multiple: Element._attributeTranslations.values._flag=0A= });=0A= =0A= Element.Methods.Simulated =3D {=0A= hasAttribute: function(element, attribute) {=0A= var t =3D Element._attributeTranslations;=0A= attribute =3D t.names[attribute] || attribute;=0A= return $(element).getAttributeNode(attribute).specified;=0A= }=0A= };=0A= =0A= // IE is missing .innerHTML support for TABLE-related elements=0A= if (document.all && !window.opera){=0A= Element.Methods.update =3D function(element, html) {=0A= element =3D $(element);=0A= html =3D typeof html =3D=3D 'undefined' ? '' : html.toString();=0A= var tagName =3D element.tagName.toUpperCase();=0A= if (['THEAD','TBODY','TR','TD'].include(tagName)) {=0A= var div =3D document.createElement('div');=0A= switch (tagName) {=0A= case 'THEAD':=0A= case 'TBODY':=0A= div.innerHTML =3D '' + html.stripScripts() + = '
';=0A= depth =3D 2;=0A= break;=0A= case 'TR':=0A= div.innerHTML =3D '' + html.stripScripts() = + '
';=0A= depth =3D 3;=0A= break;=0A= case 'TD':=0A= div.innerHTML =3D '
' + = html.stripScripts() + '
';=0A= depth =3D 4;=0A= }=0A= $A(element.childNodes).each(function(node){=0A= element.removeChild(node)=0A= });=0A= depth.times(function(){ div =3D div.firstChild });=0A= =0A= $A(div.childNodes).each(=0A= function(node){ element.appendChild(node) });=0A= } else {=0A= element.innerHTML =3D html.stripScripts();=0A= }=0A= setTimeout(function() {html.evalScripts()}, 10);=0A= return element;=0A= }=0A= };=0A= =0A= Object.extend(Element, Element.Methods);=0A= =0A= var _nativeExtensions =3D false;=0A= =0A= if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))=0A= ['', 'Form', 'Input', 'TextArea', 'Select'].each(function(tag) {=0A= var className =3D 'HTML' + tag + 'Element';=0A= if(window[className]) return;=0A= var klass =3D window[className] =3D {};=0A= klass.prototype =3D document.createElement(tag ? tag.toLowerCase() : = 'div').__proto__;=0A= });=0A= =0A= Element.addMethods =3D function(methods) {=0A= Object.extend(Element.Methods, methods || {});=0A= =0A= function copy(methods, destination, onlyIfAbsent) {=0A= onlyIfAbsent =3D onlyIfAbsent || false;=0A= var cache =3D Element.extend.cache;=0A= for (var property in methods) {=0A= var value =3D methods[property];=0A= if (!onlyIfAbsent || !(property in destination))=0A= destination[property] =3D cache.findOrStore(value);=0A= }=0A= }=0A= =0A= if (typeof HTMLElement !=3D 'undefined') {=0A= copy(Element.Methods, HTMLElement.prototype);=0A= copy(Element.Methods.Simulated, HTMLElement.prototype, true);=0A= copy(Form.Methods, HTMLFormElement.prototype);=0A= [HTMLInputElement, HTMLTextAreaElement, = HTMLSelectElement].each(function(klass) {=0A= copy(Form.Element.Methods, klass.prototype);=0A= });=0A= _nativeExtensions =3D true;=0A= }=0A= }=0A= =0A= var Toggle =3D new Object();=0A= Toggle.display =3D Element.toggle;=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.Insertion =3D function(adjacency) {=0A= this.adjacency =3D adjacency;=0A= }=0A= =0A= Abstract.Insertion.prototype =3D {=0A= initialize: function(element, content) {=0A= this.element =3D $(element);=0A= this.content =3D content.stripScripts();=0A= =0A= if (this.adjacency && this.element.insertAdjacentHTML) {=0A= try {=0A= this.element.insertAdjacentHTML(this.adjacency, this.content);=0A= } catch (e) {=0A= var tagName =3D this.element.tagName.toUpperCase();=0A= if (['TBODY', 'TR'].include(tagName)) {=0A= this.insertContent(this.contentFromAnonymousTable());=0A= } else {=0A= throw e;=0A= }=0A= }=0A= } else {=0A= this.range =3D this.element.ownerDocument.createRange();=0A= if (this.initializeRange) this.initializeRange();=0A= = this.insertContent([this.range.createContextualFragment(this.content)]);=0A= }=0A= =0A= setTimeout(function() {content.evalScripts()}, 10);=0A= },=0A= =0A= contentFromAnonymousTable: function() {=0A= var div =3D document.createElement('div');=0A= div.innerHTML =3D '' + this.content + = '
';=0A= return $A(div.childNodes[0].childNodes[0].childNodes);=0A= }=0A= }=0A= =0A= var Insertion =3D new Object();=0A= =0A= Insertion.Before =3D Class.create();=0A= Insertion.Before.prototype =3D Object.extend(new = Abstract.Insertion('beforeBegin'), {=0A= initializeRange: function() {=0A= this.range.setStartBefore(this.element);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.each((function(fragment) {=0A= this.element.parentNode.insertBefore(fragment, this.element);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= Insertion.Top =3D Class.create();=0A= Insertion.Top.prototype =3D Object.extend(new = Abstract.Insertion('afterBegin'), {=0A= initializeRange: function() {=0A= this.range.selectNodeContents(this.element);=0A= this.range.collapse(true);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.reverse(false).each((function(fragment) {=0A= this.element.insertBefore(fragment, this.element.firstChild);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= Insertion.Bottom =3D Class.create();=0A= Insertion.Bottom.prototype =3D Object.extend(new = Abstract.Insertion('beforeEnd'), {=0A= initializeRange: function() {=0A= this.range.selectNodeContents(this.element);=0A= this.range.collapse(this.element);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.each((function(fragment) {=0A= this.element.appendChild(fragment);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= Insertion.After =3D Class.create();=0A= Insertion.After.prototype =3D Object.extend(new = Abstract.Insertion('afterEnd'), {=0A= initializeRange: function() {=0A= this.range.setStartAfter(this.element);=0A= },=0A= =0A= insertContent: function(fragments) {=0A= fragments.each((function(fragment) {=0A= this.element.parentNode.insertBefore(fragment,=0A= this.element.nextSibling);=0A= }).bind(this));=0A= }=0A= });=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Element.ClassNames =3D Class.create();=0A= Element.ClassNames.prototype =3D {=0A= initialize: function(element) {=0A= this.element =3D $(element);=0A= },=0A= =0A= _each: function(iterator) {=0A= this.element.className.split(/\s+/).select(function(name) {=0A= return name.length > 0;=0A= })._each(iterator);=0A= },=0A= =0A= set: function(className) {=0A= this.element.className =3D className;=0A= },=0A= =0A= add: function(classNameToAdd) {=0A= if (this.include(classNameToAdd)) return;=0A= this.set($A(this).concat(classNameToAdd).join(' '));=0A= },=0A= =0A= remove: function(classNameToRemove) {=0A= if (!this.include(classNameToRemove)) return;=0A= this.set($A(this).without(classNameToRemove).join(' '));=0A= },=0A= =0A= toString: function() {=0A= return $A(this).join(' ');=0A= }=0A= };=0A= =0A= Object.extend(Element.ClassNames.prototype, Enumerable);=0A= var Selector =3D Class.create();=0A= Selector.prototype =3D {=0A= initialize: function(expression) {=0A= this.params =3D {classNames: []};=0A= this.expression =3D expression.toString().strip();=0A= this.parseExpression();=0A= this.compileMatcher();=0A= },=0A= =0A= parseExpression: function() {=0A= function abort(message) { throw 'Parse error in selector: ' + = message; }=0A= =0A= if (this.expression =3D=3D '') abort('empty expression');=0A= =0A= var params =3D this.params, expr =3D this.expression, match, = modifier, clause, rest;=0A= while (match =3D = expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!]?=3D)(?:"([^"]*)"|([^\]\s]*))= )?\]$/i)) {=0A= params.attributes =3D params.attributes || [];=0A= params.attributes.push({name: match[2], operator: match[3], value: = match[4] || match[5] || ''});=0A= expr =3D match[1];=0A= }=0A= =0A= if (expr =3D=3D '*') return this.params.wildcard =3D true;=0A= =0A= while (match =3D expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+)(.*)/i)) {=0A= modifier =3D match[1], clause =3D match[2], rest =3D match[3];=0A= switch (modifier) {=0A= case '#': params.id =3D clause; break;=0A= case '.': params.classNames.push(clause); break;=0A= case '':=0A= case undefined: params.tagName =3D clause.toUpperCase(); break;=0A= default: abort(expr.inspect());=0A= }=0A= expr =3D rest;=0A= }=0A= =0A= if (expr.length > 0) abort(expr.inspect());=0A= },=0A= =0A= buildMatchExpression: function() {=0A= var params =3D this.params, conditions =3D [], clause;=0A= =0A= if (params.wildcard)=0A= conditions.push('true');=0A= if (clause =3D params.id)=0A= conditions.push('element.readAttribute("id") =3D=3D ' + = clause.inspect());=0A= if (clause =3D params.tagName)=0A= conditions.push('element.tagName.toUpperCase() =3D=3D ' + = clause.inspect());=0A= if ((clause =3D params.classNames).length > 0)=0A= for (var i =3D 0, length =3D clause.length; i < length; i++)=0A= conditions.push('element.hasClassName(' + clause[i].inspect() + = ')');=0A= if (clause =3D params.attributes) {=0A= clause.each(function(attribute) {=0A= var value =3D 'element.readAttribute(' + = attribute.name.inspect() + ')';=0A= var splitValueBy =3D function(delimiter) {=0A= return value + ' && ' + value + '.split(' + = delimiter.inspect() + ')';=0A= }=0A= =0A= switch (attribute.operator) {=0A= case '=3D': conditions.push(value + ' =3D=3D ' + = attribute.value.inspect()); break;=0A= case '~=3D': conditions.push(splitValueBy(' ') + = '.include(' + attribute.value.inspect() + ')'); break;=0A= case '|=3D': conditions.push(=0A= splitValueBy('-') + '.first().toUpperCase() = =3D=3D ' + attribute.value.toUpperCase().inspect()=0A= ); break;=0A= case '!=3D': conditions.push(value + ' !=3D ' + = attribute.value.inspect()); break;=0A= case '':=0A= case undefined: conditions.push('element.hasAttribute(' + = attribute.name.inspect() + ')'); break;=0A= default: throw 'Unknown operator ' + attribute.operator = + ' in selector';=0A= }=0A= });=0A= }=0A= =0A= return conditions.join(' && ');=0A= },=0A= =0A= compileMatcher: function() {=0A= this.match =3D new Function('element', 'if (!element.tagName) return = false; \=0A= element =3D $(element); \=0A= return ' + this.buildMatchExpression());=0A= },=0A= =0A= findElements: function(scope) {=0A= var element;=0A= =0A= if (element =3D $(this.params.id))=0A= if (this.match(element))=0A= if (!scope || Element.childOf(element, scope))=0A= return [element];=0A= =0A= scope =3D (scope || = document).getElementsByTagName(this.params.tagName || '*');=0A= =0A= var results =3D [];=0A= for (var i =3D 0, length =3D scope.length; i < length; i++)=0A= if (this.match(element =3D scope[i]))=0A= results.push(Element.extend(element));=0A= =0A= return results;=0A= },=0A= =0A= toString: function() {=0A= return this.expression;=0A= }=0A= }=0A= =0A= Object.extend(Selector, {=0A= matchElements: function(elements, expression) {=0A= var selector =3D new Selector(expression);=0A= return = elements.select(selector.match.bind(selector)).map(Element.extend);=0A= },=0A= =0A= findElement: function(elements, expression, index) {=0A= if (typeof expression =3D=3D 'number') index =3D expression, = expression =3D false;=0A= return Selector.matchElements(elements, expression || '*')[index || = 0];=0A= },=0A= =0A= findChildElements: function(element, expressions) {=0A= return expressions.map(function(expression) {=0A= return = expression.match(/[^\s"]+(?:"[^"]*"[^\s"]+)*/g).inject([null], = function(results, expr) {=0A= var selector =3D new Selector(expr);=0A= return results.inject([], function(elements, result) {=0A= return elements.concat(selector.findElements(result || = element));=0A= });=0A= });=0A= }).flatten();=0A= }=0A= });=0A= =0A= function $$() {=0A= return Selector.findChildElements(document, $A(arguments));=0A= }=0A= var Form =3D {=0A= reset: function(form) {=0A= $(form).reset();=0A= return form;=0A= },=0A= =0A= serializeElements: function(elements, getHash) {=0A= var data =3D elements.inject({}, function(result, element) {=0A= if (!element.disabled && element.name) {=0A= var key =3D element.name, value =3D $(element).getValue();=0A= if (value !=3D undefined) {=0A= if (result[key]) {=0A= if (result[key].constructor !=3D Array) result[key] =3D = [result[key]];=0A= result[key].push(value);=0A= }=0A= else result[key] =3D value;=0A= }=0A= }=0A= return result;=0A= });=0A= =0A= return getHash ? data : Hash.toQueryString(data);=0A= }=0A= };=0A= =0A= Form.Methods =3D {=0A= serialize: function(form, getHash) {=0A= return Form.serializeElements(Form.getElements(form), getHash);=0A= },=0A= =0A= getElements: function(form) {=0A= return $A($(form).getElementsByTagName('*')).inject([],=0A= function(elements, child) {=0A= if (Form.Element.Serializers[child.tagName.toLowerCase()])=0A= elements.push(Element.extend(child));=0A= return elements;=0A= }=0A= );=0A= },=0A= =0A= getInputs: function(form, typeName, name) {=0A= form =3D $(form);=0A= var inputs =3D form.getElementsByTagName('input');=0A= =0A= if (!typeName && !name) return $A(inputs).map(Element.extend);=0A= =0A= for (var i =3D 0, matchingInputs =3D [], length =3D inputs.length; i = < length; i++) {=0A= var input =3D inputs[i];=0A= if ((typeName && input.type !=3D typeName) || (name && input.name = !=3D name))=0A= continue;=0A= matchingInputs.push(Element.extend(input));=0A= }=0A= =0A= return matchingInputs;=0A= },=0A= =0A= disable: function(form) {=0A= form =3D $(form);=0A= form.getElements().each(function(element) {=0A= element.blur();=0A= element.disabled =3D 'true';=0A= });=0A= return form;=0A= },=0A= =0A= enable: function(form) {=0A= form =3D $(form);=0A= form.getElements().each(function(element) {=0A= element.disabled =3D '';=0A= });=0A= return form;=0A= },=0A= =0A= findFirstElement: function(form) {=0A= return $(form).getElements().find(function(element) {=0A= return element.type !=3D 'hidden' && !element.disabled &&=0A= ['input', 'select', = 'textarea'].include(element.tagName.toLowerCase());=0A= });=0A= },=0A= =0A= focusFirstElement: function(form) {=0A= form =3D $(form);=0A= form.findFirstElement().activate();=0A= return form;=0A= }=0A= }=0A= =0A= Object.extend(Form, Form.Methods);=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Form.Element =3D {=0A= focus: function(element) {=0A= $(element).focus();=0A= return element;=0A= },=0A= =0A= select: function(element) {=0A= $(element).select();=0A= return element;=0A= }=0A= }=0A= =0A= Form.Element.Methods =3D {=0A= serialize: function(element) {=0A= element =3D $(element);=0A= if (!element.disabled && element.name) {=0A= var value =3D element.getValue();=0A= if (value !=3D undefined) {=0A= var pair =3D {};=0A= pair[element.name] =3D value;=0A= return Hash.toQueryString(pair);=0A= }=0A= }=0A= return '';=0A= },=0A= =0A= getValue: function(element) {=0A= element =3D $(element);=0A= var method =3D element.tagName.toLowerCase();=0A= return Form.Element.Serializers[method](element);=0A= },=0A= =0A= clear: function(element) {=0A= $(element).value =3D '';=0A= return element;=0A= },=0A= =0A= present: function(element) {=0A= return $(element).value !=3D '';=0A= },=0A= =0A= activate: function(element) {=0A= element =3D $(element);=0A= element.focus();=0A= if (element.select && ( element.tagName.toLowerCase() !=3D 'input' ||=0A= !['button', 'reset', 'submit'].include(element.type) ) )=0A= element.select();=0A= return element;=0A= },=0A= =0A= disable: function(element) {=0A= element =3D $(element);=0A= element.disabled =3D true;=0A= return element;=0A= },=0A= =0A= enable: function(element) {=0A= element =3D $(element);=0A= element.blur();=0A= element.disabled =3D false;=0A= return element;=0A= }=0A= }=0A= =0A= Object.extend(Form.Element, Form.Element.Methods);=0A= var Field =3D Form.Element;=0A= var $F =3D Form.Element.getValue;=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Form.Element.Serializers =3D {=0A= input: function(element) {=0A= switch (element.type.toLowerCase()) {=0A= case 'checkbox':=0A= case 'radio':=0A= return Form.Element.Serializers.inputSelector(element);=0A= default:=0A= return Form.Element.Serializers.textarea(element);=0A= }=0A= },=0A= =0A= inputSelector: function(element) {=0A= return element.checked ? element.value : null;=0A= },=0A= =0A= textarea: function(element) {=0A= return element.value;=0A= },=0A= =0A= select: function(element) {=0A= return this[element.type =3D=3D 'select-one' ?=0A= 'selectOne' : 'selectMany'](element);=0A= },=0A= =0A= selectOne: function(element) {=0A= var index =3D element.selectedIndex;=0A= return index >=3D 0 ? this.optionValue(element.options[index]) : = null;=0A= },=0A= =0A= selectMany: function(element) {=0A= var values, length =3D element.length;=0A= if (!length) return null;=0A= =0A= for (var i =3D 0, values =3D []; i < length; i++) {=0A= var opt =3D element.options[i];=0A= if (opt.selected) values.push(this.optionValue(opt));=0A= }=0A= return values;=0A= },=0A= =0A= optionValue: function(opt) {=0A= // extend element because hasAttribute may not be native=0A= return Element.extend(opt).hasAttribute('value') ? opt.value : = opt.text;=0A= }=0A= }=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.TimedObserver =3D function() {}=0A= Abstract.TimedObserver.prototype =3D {=0A= initialize: function(element, frequency, callback) {=0A= this.frequency =3D frequency;=0A= this.element =3D $(element);=0A= this.callback =3D callback;=0A= =0A= this.lastValue =3D this.getValue();=0A= this.registerCallback();=0A= },=0A= =0A= registerCallback: function() {=0A= setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);=0A= },=0A= =0A= onTimerEvent: function() {=0A= var value =3D this.getValue();=0A= var changed =3D ('string' =3D=3D typeof this.lastValue && 'string' = =3D=3D typeof value=0A= ? this.lastValue !=3D value : String(this.lastValue) !=3D = String(value));=0A= if (changed) {=0A= this.callback(this.element, value);=0A= this.lastValue =3D value;=0A= }=0A= }=0A= }=0A= =0A= Form.Element.Observer =3D Class.create();=0A= Form.Element.Observer.prototype =3D Object.extend(new = Abstract.TimedObserver(), {=0A= getValue: function() {=0A= return Form.Element.getValue(this.element);=0A= }=0A= });=0A= =0A= Form.Observer =3D Class.create();=0A= Form.Observer.prototype =3D Object.extend(new Abstract.TimedObserver(), {=0A= getValue: function() {=0A= return Form.serialize(this.element);=0A= }=0A= });=0A= =0A= /*-----------------------------------------------------------------------= ---*/=0A= =0A= Abstract.EventObserver =3D function() {}=0A= Abstract.EventObserver.prototype =3D {=0A= initialize: function(element, callback) {=0A= this.element =3D $(element);=0A= this.callback =3D callback;=0A= =0A= this.lastValue =3D this.getValue();=0A= if (this.element.tagName.toLowerCase() =3D=3D 'form')=0A= this.registerFormCallbacks();=0A= else=0A= this.registerCallback(this.element);=0A= },=0A= =0A= onElementEvent: function() {=0A= var value =3D this.getValue();=0A= if (this.lastValue !=3D value) {=0A= this.callback(this.element, value);=0A= this.lastValue =3D value;=0A= }=0A= },=0A= =0A= registerFormCallbacks: function() {=0A= = Form.getElements(this.element).each(this.registerCallback.bind(this));=0A= },=0A= =0A= registerCallback: function(element) {=0A= if (element.type) {=0A= switch (element.type.toLowerCase()) {=0A= case 'checkbox':=0A= case 'radio':=0A= Event.observe(element, 'click', = this.onElementEvent.bind(this));=0A= break;=0A= default:=0A= Event.observe(element, 'change', = this.onElementEvent.bind(this));=0A= break;=0A= }=0A= }=0A= }=0A= }=0A= =0A= Form.Element.EventObserver =3D Class.create();=0A= Form.Element.EventObserver.prototype =3D Object.extend(new = Abstract.EventObserver(), {=0A= getValue: function() {=0A= return Form.Element.getValue(this.element);=0A= }=0A= });=0A= =0A= Form.EventObserver =3D Class.create();=0A= Form.EventObserver.prototype =3D Object.extend(new = Abstract.EventObserver(), {=0A= getValue: function() {=0A= return Form.serialize(this.element);=0A= }=0A= });=0A= if (!window.Event) {=0A= var Event =3D new Object();=0A= }=0A= =0A= Object.extend(Event, {=0A= KEY_BACKSPACE: 8,=0A= KEY_TAB: 9,=0A= KEY_RETURN: 13,=0A= KEY_ESC: 27,=0A= KEY_LEFT: 37,=0A= KEY_UP: 38,=0A= KEY_RIGHT: 39,=0A= KEY_DOWN: 40,=0A= KEY_DELETE: 46,=0A= KEY_HOME: 36,=0A= KEY_END: 35,=0A= KEY_PAGEUP: 33,=0A= KEY_PAGEDOWN: 34,=0A= =0A= element: function(event) {=0A= return event.target || event.srcElement;=0A= },=0A= =0A= isLeftClick: function(event) {=0A= return (((event.which) && (event.which =3D=3D 1)) ||=0A= ((event.button) && (event.button =3D=3D 1)));=0A= },=0A= =0A= pointerX: function(event) {=0A= return event.pageX || (event.clientX +=0A= (document.documentElement.scrollLeft || document.body.scrollLeft));=0A= },=0A= =0A= pointerY: function(event) {=0A= return event.pageY || (event.clientY +=0A= (document.documentElement.scrollTop || document.body.scrollTop));=0A= },=0A= =0A= stop: function(event) {=0A= if (event.preventDefault) {=0A= event.preventDefault();=0A= event.stopPropagation();=0A= } else {=0A= event.returnValue =3D false;=0A= event.cancelBubble =3D true;=0A= }=0A= },=0A= =0A= // find the first node with the given tagName, starting from the=0A= // node the event was triggered on; traverses the DOM upwards=0A= findElement: function(event, tagName) {=0A= var element =3D Event.element(event);=0A= while (element.parentNode && (!element.tagName ||=0A= (element.tagName.toUpperCase() !=3D tagName.toUpperCase())))=0A= element =3D element.parentNode;=0A= return element;=0A= },=0A= =0A= observers: false,=0A= =0A= _observeAndCache: function(element, name, observer, useCapture) {=0A= if (!this.observers) this.observers =3D [];=0A= if (element.addEventListener) {=0A= this.observers.push([element, name, observer, useCapture]);=0A= element.addEventListener(name, observer, useCapture);=0A= } else if (element.attachEvent) {=0A= this.observers.push([element, name, observer, useCapture]);=0A= element.attachEvent('on' + name, observer);=0A= }=0A= },=0A= =0A= unloadCache: function() {=0A= if (!Event.observers) return;=0A= for (var i =3D 0, length =3D Event.observers.length; i < length; = i++) {=0A= Event.stopObserving.apply(this, Event.observers[i]);=0A= Event.observers[i][0] =3D null;=0A= }=0A= Event.observers =3D false;=0A= },=0A= =0A= observe: function(element, name, observer, useCapture) {=0A= element =3D $(element);=0A= useCapture =3D useCapture || false;=0A= =0A= if (name =3D=3D 'keypress' &&=0A= (navigator.appVersion.match(/Konqueror|Safari|KHTML/)=0A= || element.attachEvent))=0A= name =3D 'keydown';=0A= =0A= Event._observeAndCache(element, name, observer, useCapture);=0A= },=0A= =0A= stopObserving: function(element, name, observer, useCapture) {=0A= element =3D $(element);=0A= useCapture =3D useCapture || false;=0A= =0A= if (name =3D=3D 'keypress' &&=0A= (navigator.appVersion.match(/Konqueror|Safari|KHTML/)=0A= || element.detachEvent))=0A= name =3D 'keydown';=0A= =0A= if (element.removeEventListener) {=0A= element.removeEventListener(name, observer, useCapture);=0A= } else if (element.detachEvent) {=0A= try {=0A= element.detachEvent('on' + name, observer);=0A= } catch (e) {}=0A= }=0A= }=0A= });=0A= =0A= /* prevent memory leaks in IE */=0A= if (navigator.appVersion.match(/\bMSIE\b/))=0A= Event.observe(window, 'unload', Event.unloadCache, false);=0A= var Position =3D {=0A= // set to true if needed, warning: firefox performance problems=0A= // NOT neeeded for page scrolling, only if draggable contained in=0A= // scrollable elements=0A= includeScrollOffsets: false,=0A= =0A= // must be called before calling withinIncludingScrolloffset, every = time the=0A= // page is scrolled=0A= prepare: function() {=0A= this.deltaX =3D window.pageXOffset=0A= || document.documentElement.scrollLeft=0A= || document.body.scrollLeft=0A= || 0;=0A= this.deltaY =3D window.pageYOffset=0A= || document.documentElement.scrollTop=0A= || document.body.scrollTop=0A= || 0;=0A= },=0A= =0A= realOffset: function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.scrollTop || 0;=0A= valueL +=3D element.scrollLeft || 0;=0A= element =3D element.parentNode;=0A= } while (element);=0A= return [valueL, valueT];=0A= },=0A= =0A= cumulativeOffset: function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= element =3D element.offsetParent;=0A= } while (element);=0A= return [valueL, valueT];=0A= },=0A= =0A= positionedOffset: function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= element =3D element.offsetParent;=0A= if (element) {=0A= if(element.tagName=3D=3D'BODY') break;=0A= var p =3D Element.getStyle(element, 'position');=0A= if (p =3D=3D 'relative' || p =3D=3D 'absolute') break;=0A= }=0A= } while (element);=0A= return [valueL, valueT];=0A= },=0A= =0A= offsetParent: function(element) {=0A= if (element.offsetParent) return element.offsetParent;=0A= if (element =3D=3D document.body) return element;=0A= =0A= while ((element =3D element.parentNode) && element !=3D = document.body)=0A= if (Element.getStyle(element, 'position') !=3D 'static')=0A= return element;=0A= =0A= return document.body;=0A= },=0A= =0A= // caches x/y coordinate pair to use with overlap=0A= within: function(element, x, y) {=0A= if (this.includeScrollOffsets)=0A= return this.withinIncludingScrolloffsets(element, x, y);=0A= this.xcomp =3D x;=0A= this.ycomp =3D y;=0A= this.offset =3D this.cumulativeOffset(element);=0A= =0A= return (y >=3D this.offset[1] &&=0A= y < this.offset[1] + element.offsetHeight &&=0A= x >=3D this.offset[0] &&=0A= x < this.offset[0] + element.offsetWidth);=0A= },=0A= =0A= withinIncludingScrolloffsets: function(element, x, y) {=0A= var offsetcache =3D this.realOffset(element);=0A= =0A= this.xcomp =3D x + offsetcache[0] - this.deltaX;=0A= this.ycomp =3D y + offsetcache[1] - this.deltaY;=0A= this.offset =3D this.cumulativeOffset(element);=0A= =0A= return (this.ycomp >=3D this.offset[1] &&=0A= this.ycomp < this.offset[1] + element.offsetHeight &&=0A= this.xcomp >=3D this.offset[0] &&=0A= this.xcomp < this.offset[0] + element.offsetWidth);=0A= },=0A= =0A= // within must be called directly before=0A= overlap: function(mode, element) {=0A= if (!mode) return 0;=0A= if (mode =3D=3D 'vertical')=0A= return ((this.offset[1] + element.offsetHeight) - this.ycomp) /=0A= element.offsetHeight;=0A= if (mode =3D=3D 'horizontal')=0A= return ((this.offset[0] + element.offsetWidth) - this.xcomp) /=0A= element.offsetWidth;=0A= },=0A= =0A= page: function(forElement) {=0A= var valueT =3D 0, valueL =3D 0;=0A= =0A= var element =3D forElement;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= =0A= // Safari fix=0A= if (element.offsetParent=3D=3Ddocument.body)=0A= if (Element.getStyle(element,'position')=3D=3D'absolute') break;=0A= =0A= } while (element =3D element.offsetParent);=0A= =0A= element =3D forElement;=0A= do {=0A= if (!window.opera || element.tagName=3D=3D'BODY') {=0A= valueT -=3D element.scrollTop || 0;=0A= valueL -=3D element.scrollLeft || 0;=0A= }=0A= } while (element =3D element.parentNode);=0A= =0A= return [valueL, valueT];=0A= },=0A= =0A= clone: function(source, target) {=0A= var options =3D Object.extend({=0A= setLeft: true,=0A= setTop: true,=0A= setWidth: true,=0A= setHeight: true,=0A= offsetTop: 0,=0A= offsetLeft: 0=0A= }, arguments[2] || {})=0A= =0A= // find page position of source=0A= source =3D $(source);=0A= var p =3D Position.page(source);=0A= =0A= // find coordinate system to use=0A= target =3D $(target);=0A= var delta =3D [0, 0];=0A= var parent =3D null;=0A= // delta [0,0] will do fine with position: fixed elements,=0A= // position:absolute needs offsetParent deltas=0A= if (Element.getStyle(target,'position') =3D=3D 'absolute') {=0A= parent =3D Position.offsetParent(target);=0A= delta =3D Position.page(parent);=0A= }=0A= =0A= // correct by body offsets (fixes Safari)=0A= if (parent =3D=3D document.body) {=0A= delta[0] -=3D document.body.offsetLeft;=0A= delta[1] -=3D document.body.offsetTop;=0A= }=0A= =0A= // set position=0A= if(options.setLeft) target.style.left =3D (p[0] - delta[0] + = options.offsetLeft) + 'px';=0A= if(options.setTop) target.style.top =3D (p[1] - delta[1] + = options.offsetTop) + 'px';=0A= if(options.setWidth) target.style.width =3D source.offsetWidth + = 'px';=0A= if(options.setHeight) target.style.height =3D source.offsetHeight + = 'px';=0A= },=0A= =0A= absolutize: function(element) {=0A= element =3D $(element);=0A= if (element.style.position =3D=3D 'absolute') return;=0A= Position.prepare();=0A= =0A= var offsets =3D Position.positionedOffset(element);=0A= var top =3D offsets[1];=0A= var left =3D offsets[0];=0A= var width =3D element.clientWidth;=0A= var height =3D element.clientHeight;=0A= =0A= element._originalLeft =3D left - parseFloat(element.style.left || = 0);=0A= element._originalTop =3D top - parseFloat(element.style.top || = 0);=0A= element._originalWidth =3D element.style.width;=0A= element._originalHeight =3D element.style.height;=0A= =0A= element.style.position =3D 'absolute';=0A= element.style.top =3D top + 'px';=0A= element.style.left =3D left + 'px';=0A= element.style.width =3D width + 'px';=0A= element.style.height =3D height + 'px';=0A= },=0A= =0A= relativize: function(element) {=0A= element =3D $(element);=0A= if (element.style.position =3D=3D 'relative') return;=0A= Position.prepare();=0A= =0A= element.style.position =3D 'relative';=0A= var top =3D parseFloat(element.style.top || 0) - = (element._originalTop || 0);=0A= var left =3D parseFloat(element.style.left || 0) - = (element._originalLeft || 0);=0A= =0A= element.style.top =3D top + 'px';=0A= element.style.left =3D left + 'px';=0A= element.style.height =3D element._originalHeight;=0A= element.style.width =3D element._originalWidth;=0A= }=0A= }=0A= =0A= // Safari returns margins on body which is incorrect if the child is = absolutely=0A= // positioned. For performance reasons, redefine = Position.cumulativeOffset for=0A= // KHTML/WebKit only.=0A= if (/Konqueror|Safari|KHTML/.test(navigator.userAgent)) {=0A= Position.cumulativeOffset =3D function(element) {=0A= var valueT =3D 0, valueL =3D 0;=0A= do {=0A= valueT +=3D element.offsetTop || 0;=0A= valueL +=3D element.offsetLeft || 0;=0A= if (element.offsetParent =3D=3D document.body)=0A= if (Element.getStyle(element, 'position') =3D=3D 'absolute') = break;=0A= =0A= element =3D element.offsetParent;=0A= } while (element);=0A= =0A= return [valueL, valueT];=0A= }=0A= }=0A= =0A= Element.addMethods(); ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.wired.com/js/jquery-1.3.2.min.js /*=0A= * jQuery JavaScript Library v1.3.2=0A= * http://jquery.com/=0A= *=0A= * Copyright (c) 2009 John Resig=0A= * Dual licensed under the MIT and GPL licenses.=0A= * http://docs.jquery.com/License=0A= *=0A= * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)=0A= * Revision: 6246=0A= */=0A= (function(){var = window=3Dthis,undefined,_jQuery=3Dwindow.jQuery,_$=3Dwindow.$,jQuery=3Dwi= ndow.jQuery=3Dwindow.$=3Dfunction(selector,context){return new = jQuery.fn.init(selector,context)},quickExpr=3D/^[^<]*(<(.|\s)+>)[^>]*$|^#= ([\w-]+)$/,isSimple=3D/^.[^:#\[\.,]*$/;jQuery.fn=3DjQuery.prototype=3D{in= it:function(selector,context){selector=3Dselector||document;if(selector.n= odeType){this[0]=3Dselector;this.length=3D1;this.context=3Dselector;retur= n this}if(typeof selector=3D=3D=3D"string"){var = match=3DquickExpr.exec(selector);if(match&&(match[1]||!context)){if(match= [1]){selector=3DjQuery.clean([match[1]],context)}else{var = elem=3Ddocument.getElementById(match[3]);if(elem&&elem.id!=3Dmatch[3]){re= turn jQuery().find(selector)}var = ret=3DjQuery(elem||[]);ret.context=3Ddocument;ret.selector=3Dselector;ret= urn ret}}else{return = jQuery(context).find(selector)}}else{if(jQuery.isFunction(selector)){retu= rn = jQuery(document).ready(selector)}}if(selector.selector&&selector.context)= {this.selector=3Dselector.selector;this.context=3Dselector.context}return= = this.setArray(jQuery.isArray(selector)?selector:jQuery.makeArray(selector= ))},selector:"",jquery:"1.3.2",size:function(){return = this.length},get:function(num){return = num=3D=3D=3Dundefined?Array.prototype.slice.call(this):this[num]},pushSta= ck:function(elems,name,selector){var = ret=3DjQuery(elems);ret.prevObject=3Dthis;ret.context=3Dthis.context;if(n= ame=3D=3D=3D"find"){ret.selector=3Dthis.selector+(this.selector?" = ":"")+selector}else{if(name){ret.selector=3Dthis.selector+"."+name+"("+se= lector+")"}}return = ret},setArray:function(elems){this.length=3D0;Array.prototype.push.apply(= this,elems);return this},each:function(callback,args){return = jQuery.each(this,callback,args)},index:function(elem){return = jQuery.inArray(elem&&elem.jquery?elem[0]:elem,this)},attr:function(name,v= alue,type){var options=3Dname;if(typeof = name=3D=3D=3D"string"){if(value=3D=3D=3Dundefined){return = this[0]&&jQuery[type||"attr"](this[0],name)}else{options=3D{};options[nam= e]=3Dvalue}}return this.each(function(i){for(name in = options){jQuery.attr(type?this.style:this,name,jQuery.prop(this,options[n= ame],type,i,name))}})},css:function(key,value){if((key=3D=3D"width"||key=3D= =3D"height")&&parseFloat(value)<0){value=3Dundefined}return = this.attr(key,value,"curCSS")},text:function(text){if(typeof = text!=3D=3D"object"&&text!=3Dnull){return = this.empty().append((this[0]&&this[0].ownerDocument||document).createText= Node(text))}var = ret=3D"";jQuery.each(text||this,function(){jQuery.each(this.childNodes,fu= nction(){if(this.nodeType!=3D8){ret+=3Dthis.nodeType!=3D1?this.nodeValue:= jQuery.fn.text([this])}})});return = ret},wrapAll:function(html){if(this[0]){var = wrap=3DjQuery(html,this[0].ownerDocument).clone();if(this[0].parentNode){= wrap.insertBefore(this[0])}wrap.map(function(){var = elem=3Dthis;while(elem.firstChild){elem=3Delem.firstChild}return = elem}).append(this)}return this},wrapInner:function(html){return = this.each(function(){jQuery(this).contents().wrapAll(html)})},wrap:functi= on(html){return = this.each(function(){jQuery(this).wrapAll(html)})},append:function(){retu= rn = this.domManip(arguments,true,function(elem){if(this.nodeType=3D=3D1){this= .appendChild(elem)}})},prepend:function(){return = this.domManip(arguments,true,function(elem){if(this.nodeType=3D=3D1){this= .insertBefore(elem,this.firstChild)}})},before:function(){return = this.domManip(arguments,false,function(elem){this.parentNode.insertBefore= (elem,this)})},after:function(){return = this.domManip(arguments,false,function(elem){this.parentNode.insertBefore= (elem,this.nextSibling)})},end:function(){return = this.prevObject||jQuery([])},push:[].push,sort:[].sort,splice:[].splice,f= ind:function(selector){if(this.length=3D=3D=3D1){var = ret=3Dthis.pushStack([],"find",selector);ret.length=3D0;jQuery.find(selec= tor,this[0],ret);return ret}else{return = this.pushStack(jQuery.unique(jQuery.map(this,function(elem){return = jQuery.find(selector,elem)})),"find",selector)}},clone:function(events){v= ar = ret=3Dthis.map(function(){if(!jQuery.support.noCloneEvent&&!jQuery.isXMLD= oc(this)){var html=3Dthis.outerHTML;if(!html){var = div=3Dthis.ownerDocument.createElement("div");div.appendChild(this.cloneN= ode(true));html=3Ddiv.innerHTML}return jQuery.clean([html.replace(/ = jQuery\d+=3D"(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return = this.cloneNode(true)}});if(events=3D=3D=3Dtrue){var = orig=3Dthis.find("*").andSelf(),i=3D0;ret.find("*").andSelf().each(functi= on(){if(this.nodeName!=3D=3Dorig[i].nodeName){return }var = events=3DjQuery.data(orig[i],"events");for(var type in events){for(var = handler in = events[type]){jQuery.event.add(this,type,events[type][handler],events[typ= e][handler].data)}}i++})}return ret},filter:function(selector){return = this.pushStack(jQuery.isFunction(selector)&&jQuery.grep(this,function(ele= m,i){return = selector.call(elem,i)})||jQuery.multiFilter(selector,jQuery.grep(this,fun= ction(elem){return = elem.nodeType=3D=3D=3D1})),"filter",selector)},closest:function(selector)= {var = pos=3DjQuery.expr.match.POS.test(selector)?jQuery(selector):null,closer=3D= 0;return this.map(function(){var = cur=3Dthis;while(cur&&cur.ownerDocument){if(pos?pos.index(cur)>-1:jQuery(= cur).is(selector)){jQuery.data(cur,"closest",closer);return = cur}cur=3Dcur.parentNode;closer++}})},not:function(selector){if(typeof = selector=3D=3D=3D"string"){if(isSimple.test(selector)){return = this.pushStack(jQuery.multiFilter(selector,this,true),"not",selector)}els= e{selector=3DjQuery.multiFilter(selector,this)}}var = isArrayLike=3Dselector.length&&selector[selector.length-1]!=3D=3Dundefine= d&&!selector.nodeType;return this.filter(function(){return = isArrayLike?jQuery.inArray(this,selector)<0:this!=3Dselector})},add:funct= ion(selector){return = this.pushStack(jQuery.unique(jQuery.merge(this.get(),typeof = selector=3D=3D=3D"string"?jQuery(selector):jQuery.makeArray(selector))))}= ,is:function(selector){return = !!selector&&jQuery.multiFilter(selector,this).length>0},hasClass:function= (selector){return = !!selector&&this.is("."+selector)},val:function(value){if(value=3D=3D=3Du= ndefined){var = elem=3Dthis[0];if(elem){if(jQuery.nodeName(elem,"option")){return(elem.at= tributes.value||{}).specified?elem.value:elem.text}if(jQuery.nodeName(ele= m,"select")){var = index=3Delem.selectedIndex,values=3D[],options=3Delem.options,one=3Delem.= type=3D=3D"select-one";if(index<0){return null}for(var = i=3Done?index:0,max=3Done?index+1:options.length;i=3D0||jQuery.inArray(this.name,value= )>=3D0)}else{if(jQuery.nodeName(this,"select")){var = values=3DjQuery.makeArray(value);jQuery("option",this).each(function(){th= is.selected=3D(jQuery.inArray(this.value,values)>=3D0||jQuery.inArray(thi= s.text,values)>=3D0)});if(!values.length){this.selectedIndex=3D-1}}else{t= his.value=3Dvalue}}})},html:function(value){return = value=3D=3D=3Dundefined?(this[0]?this[0].innerHTML.replace(/ = jQuery\d+=3D"(?:\d+|null)"/g,""):null):this.empty().append(value)},replac= eWith:function(value){return = this.after(value).remove()},eq:function(i){return = this.slice(i,+i+1)},slice:function(){return = this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.= prototype.slice.call(arguments).join(","))},map:function(callback){return= this.pushStack(jQuery.map(this,function(elem,i){return = callback.call(elem,i,elem)}))},andSelf:function(){return = this.add(this.prevObject)},domManip:function(args,table,callback){if(this= [0]){var = fragment=3D(this[0].ownerDocument||this[0]).createDocumentFragment(),scri= pts=3DjQuery.clean(args,(this[0].ownerDocument||this[0]),fragment),first=3D= fragment.firstChild;if(first){for(var = i=3D0,l=3Dthis.length;i1||i>0?fragment.cloneNode(true):fragment)}}if(scripts){jQuery.each(sc= ripts,evalScript)}}return this;function root(elem,cur){return = table&&jQuery.nodeName(elem,"table")&&jQuery.nodeName(cur,"tr")?(elem.get= ElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.create= Element("tbody"))):elem}}};jQuery.fn.init.prototype=3DjQuery.fn;function = evalScript(i,elem){if(elem.src){jQuery.ajax({url:elem.src,async:false,dat= aType:"script"})}else{jQuery.globalEval(elem.text||elem.textContent||elem= .innerHTML||"")}if(elem.parentNode){elem.parentNode.removeChild(elem)}}fu= nction now(){return +new = Date}jQuery.extend=3DjQuery.fn.extend=3Dfunction(){var = target=3Darguments[0]||{},i=3D1,length=3Darguments.length,deep=3Dfalse,op= tions;if(typeof = target=3D=3D=3D"boolean"){deep=3Dtarget;target=3Darguments[1]||{};i=3D2}i= f(typeof = target!=3D=3D"object"&&!jQuery.isFunction(target)){target=3D{}}if(length=3D= =3Di){target=3Dthis;--i}for(;i-1}},swap:function(elem,options,callback){var old=3D{};for(var = name in = options){old[name]=3Delem.style[name];elem.style[name]=3Doptions[name]}ca= llback.call(elem);for(var name in = options){elem.style[name]=3Dold[name]}},css:function(elem,name,force,extr= a){if(name=3D=3D"width"||name=3D=3D"height"){var = val,props=3D{position:"absolute",visibility:"hidden",display:"block"},whi= ch=3Dname=3D=3D"width"?["Left","Right"]:["Top","Bottom"];function = getWH(){val=3Dname=3D=3D"width"?elem.offsetWidth:elem.offsetHeight;if(ext= ra=3D=3D=3D"border"){return = }jQuery.each(which,function(){if(!extra){val-=3DparseFloat(jQuery.curCSS(= elem,"padding"+this,true))||0}if(extra=3D=3D=3D"margin"){val+=3DparseFloa= t(jQuery.curCSS(elem,"margin"+this,true))||0}else{val-=3DparseFloat(jQuer= y.curCSS(elem,"border"+this+"Width",true))||0}})}if(elem.offsetWidth!=3D=3D= 0){getWH()}else{jQuery.swap(elem,props,getWH)}return = Math.max(0,Math.round(val))}return = jQuery.curCSS(elem,name,force)},curCSS:function(elem,name,force){var = ret,style=3Delem.style;if(name=3D=3D"opacity"&&!jQuery.support.opacity){r= et=3DjQuery.attr(style,"opacity");return = ret=3D=3D""?"1":ret}if(name.match(/float/i)){name=3DstyleFloat}if(!force&= &style&&style[name]){ret=3Dstyle[name]}else{if(defaultView.getComputedSty= le){if(name.match(/float/i)){name=3D"float"}name=3Dname.replace(/([A-Z])/= g,"-$1").toLowerCase();var = computedStyle=3DdefaultView.getComputedStyle(elem,null);if(computedStyle)= {ret=3DcomputedStyle.getPropertyValue(name)}if(name=3D=3D"opacity"&&ret=3D= =3D""){ret=3D"1"}}else{if(elem.currentStyle){var = camelCase=3Dname.replace(/\-(\w)/g,function(all,letter){return = letter.toUpperCase()});ret=3Delem.currentStyle[name]||elem.currentStyle[c= amelCase];if(!/^\d+(px)?$/i.test(ret)&&/^\d/.test(ret)){var = left=3Dstyle.left,rsLeft=3Delem.runtimeStyle.left;elem.runtimeStyle.left=3D= elem.currentStyle.left;style.left=3Dret||0;ret=3Dstyle.pixelLeft+"px";sty= le.left=3Dleft;elem.runtimeStyle.left=3DrsLeft}}}}return = ret},clean:function(elems,context,fragment){context=3Dcontext||document;i= f(typeof = context.createElement=3D=3D=3D"undefined"){context=3Dcontext.ownerDocumen= t||context[0]&&context[0].ownerDocument||document}if(!fragment&&elems.len= gth=3D=3D=3D1&&typeof elems[0]=3D=3D=3D"string"){var = match=3D/^<(\w+)\s*\/?>$/.exec(elems[0]);if(match){return[context.createE= lement(match[1])]}}var = ret=3D[],scripts=3D[],div=3Dcontext.createElement("div");jQuery.each(elem= s,function(i,elem){if(typeof = elem=3D=3D=3D"number"){elem+=3D""}if(!elem){return }if(typeof = elem=3D=3D=3D"string"){elem=3Delem.replace(/(<(\w+)[^>]*?)\/>/g,function(= all,front,tag){return = tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?all= :front+">"});var = tags=3Delem.replace(/^\s+/,"").substring(0,10).toLowerCase();var = wrap=3D!tags.indexOf("",""]||!tags.indexOf("",""]||tags.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"",""]||!tags.indexOf("",""]||(!tags.indexOf("= ",""]||!tags.indexOf("= ",""]||!jQuery.support.htmlSerialize= &&[1,"div
","
"]||[0,"",""];div.innerHTML=3Dwrap[1]+elem+wrap[2]= ;while(wrap[0]--){div=3Ddiv.lastChild}if(!jQuery.support.tbody){var = hasBody=3D/"&&!hasBod= y?div.childNodes:[];for(var = j=3Dtbody.length-1;j>=3D0;--j){if(jQuery.nodeName(tbody[j],"tbody")&&!tbo= dy[j].childNodes.length){tbody[j].parentNode.removeChild(tbody[j])}}}if(!= jQuery.support.leadingWhitespace&&/^\s/.test(elem)){div.insertBefore(cont= ext.createTextNode(elem.match(/^\s*/)[0]),div.firstChild)}elem=3DjQuery.m= akeArray(div.childNodes)}if(elem.nodeType){ret.push(elem)}else{ret=3DjQue= ry.merge(ret,elem)}});if(fragment){for(var = i=3D0;ret[i];i++){if(jQuery.nodeName(ret[i],"script")&&(!ret[i].type||ret= [i].type.toLowerCase()=3D=3D=3D"text/javascript")){scripts.push(ret[i].pa= rentNode?ret[i].parentNode.removeChild(ret[i]):ret[i])}else{if(ret[i].nod= eType=3D=3D=3D1){ret.splice.apply(ret,[i+1,0].concat(jQuery.makeArray(ret= [i].getElementsByTagName("script"))))}fragment.appendChild(ret[i])}}retur= n scripts}return = ret},attr:function(elem,name,value){if(!elem||elem.nodeType=3D=3D3||elem.= nodeType=3D=3D8){return undefined}var = notxml=3D!jQuery.isXMLDoc(elem),set=3Dvalue!=3D=3Dundefined;name=3Dnotxml= &&jQuery.props[name]||name;if(elem.tagName){var = special=3D/href|src|style/.test(name);if(name=3D=3D"selected"&&elem.paren= tNode){elem.parentNode.selectedIndex}if(name in = elem&¬xml&&!special){if(set){if(name=3D=3D"type"&&jQuery.nodeName(elem= ,"input")&&elem.parentNode){throw"type property can't be = changed"}elem[name]=3Dvalue}if(jQuery.nodeName(elem,"form")&&elem.getAttr= ibuteNode(name)){return = elem.getAttributeNode(name).nodeValue}if(name=3D=3D"tabIndex"){var = attributeNode=3Delem.getAttributeNode("tabIndex");return = attributeNode&&attributeNode.specified?attributeNode.value:elem.nodeName.= match(/(button|input|object|select|textarea)/i)?0:elem.nodeName.match(/^(= a|area)$/i)&&elem.href?0:undefined}return = elem[name]}if(!jQuery.support.style&¬xml&&name=3D=3D"style"){return = jQuery.attr(elem.style,"cssText",value)}if(set){elem.setAttribute(name,""= +value)}var = attr=3D!jQuery.support.hrefNormalized&¬xml&&special?elem.getAttribute(= name,2):elem.getAttribute(name);return = attr=3D=3D=3Dnull?undefined:attr}if(!jQuery.support.opacity&&name=3D=3D"o= pacity"){if(set){elem.zoom=3D1;elem.filter=3D(elem.filter||"").replace(/a= lpha\([^)]*\)/,"")+(parseInt(value)+""=3D=3D"NaN"?"":"alpha(opacity=3D"+v= alue*100+")")}return = elem.filter&&elem.filter.indexOf("opacity=3D")>=3D0?(parseFloat(elem.filt= er.match(/opacity=3D([^)]*)/)[1])/100)+"":""}name=3Dname.replace(/-([a-z]= )/ig,function(all,letter){return = letter.toUpperCase()});if(set){elem[name]=3Dvalue}return = elem[name]},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"")= },makeArray:function(array){var ret=3D[];if(array!=3Dnull){var = i=3Darray.length;if(i=3D=3Dnull||typeof = array=3D=3D=3D"string"||jQuery.isFunction(array)||array.setInterval){ret[= 0]=3Darray}else{while(i){ret[--i]=3Darray[i]}}}return = ret},inArray:function(elem,array){for(var = i=3D0,length=3Darray.length;i0?this.clone(true):this).get();jQuery.fn[original].apply(jQuer= y(insert[i]),elems);ret=3Dret.concat(elems)}return = this.pushStack(ret,name,selector)}});jQuery.each({removeAttr:function(nam= e){jQuery.attr(this,name,"");if(this.nodeType=3D=3D1){this.removeAttribut= e(name)}},addClass:function(classNames){jQuery.className.add(this,classNa= mes)},removeClass:function(classNames){jQuery.className.remove(this,class= Names)},toggleClass:function(classNames,state){if(typeof = state!=3D=3D"boolean"){state=3D!jQuery.className.has(this,classNames)}jQu= ery.className[state?"add":"remove"](this,classNames)},remove:function(sel= ector){if(!selector||jQuery.filter(selector,[this]).length){jQuery("*",th= is).add([this]).each(function(){jQuery.event.remove(this);jQuery.removeDa= ta(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty= :function(){jQuery(this).children().remove();while(this.firstChild){this.= removeChild(this.firstChild)}}},function(name,fn){jQuery.fn[name]=3Dfunct= ion(){return this.each(fn,arguments)}});function num(elem,prop){return = elem[0]&&parseInt(jQuery.curCSS(elem[0],prop,true),10)||0}var = expando=3D"jQuery"+now(),uuid=3D0,windowData=3D{};jQuery.extend({cache:{}= ,data:function(elem,name,data){elem=3Delem=3D=3Dwindow?windowData:elem;va= r = id=3Delem[expando];if(!id){id=3Delem[expando]=3D++uuid}if(name&&!jQuery.c= ache[id]){jQuery.cache[id]=3D{}}if(data!=3D=3Dundefined){jQuery.cache[id]= [name]=3Ddata}return = name?jQuery.cache[id][name]:id},removeData:function(elem,name){elem=3Dele= m=3D=3Dwindow?windowData:elem;var = id=3Delem[expando];if(name){if(jQuery.cache[id]){delete = jQuery.cache[id][name];name=3D"";for(name in = jQuery.cache[id]){break}if(!name){jQuery.removeData(elem)}}}else{try{dele= te = elem[expando]}catch(e){if(elem.removeAttribute){elem.removeAttribute(expa= ndo)}}delete = jQuery.cache[id]}},queue:function(elem,type,data){if(elem){type=3D(type||= "fx")+"queue";var = q=3DjQuery.data(elem,type);if(!q||jQuery.isArray(data)){q=3DjQuery.data(e= lem,type,jQuery.makeArray(data))}else{if(data){q.push(data)}}}return = q},dequeue:function(elem,type){var = queue=3DjQuery.queue(elem,type),fn=3Dqueue.shift();if(!type||type=3D=3D=3D= "fx"){fn=3Dqueue[0]}if(fn!=3D=3Dundefined){fn.call(elem)}}});jQuery.fn.ex= tend({data:function(key,value){var = parts=3Dkey.split(".");parts[1]=3Dparts[1]?"."+parts[1]:"";if(value=3D=3D= =3Dundefined){var = data=3Dthis.triggerHandler("getData"+parts[1]+"!",[parts[0]]);if(data=3D=3D= =3Dundefined&&this.length){data=3DjQuery.data(this[0],key)}return = data=3D=3D=3Dundefined&&parts[1]?this.data(parts[0]):data}else{return = this.trigger("setData"+parts[1]+"!",[parts[0],value]).each(function(){jQu= ery.data(this,key,value)})}},removeData:function(key){return = this.each(function(){jQuery.removeData(this,key)})},queue:function(type,d= ata){if(typeof = type!=3D=3D"string"){data=3Dtype;type=3D"fx"}if(data=3D=3D=3Dundefined){r= eturn jQuery.queue(this[0],type)}return this.each(function(){var = queue=3DjQuery.queue(this,type,data);if(type=3D=3D"fx"&&queue.length=3D=3D= 1){queue[0].call(this)}})},dequeue:function(type){return = this.each(function(){jQuery.dequeue(this,type)})}});=0A= /*=0A= * Sizzle CSS Selector Engine - v0.9.3=0A= * Copyright 2009, The Dojo Foundation=0A= * Released under the MIT, BSD, and GPL Licenses.=0A= * More information: http://sizzlejs.com/=0A= */=0A= (function(){var = chunker=3D/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]= |[^[\]'"]+)+\]|\\.|[^ = >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,done=3D0,toString=3DObject.prototype.toS= tring;var = Sizzle=3Dfunction(selector,context,results,seed){results=3Dresults||[];co= ntext=3Dcontext||document;if(context.nodeType!=3D=3D1&&context.nodeType!=3D= =3D9){return[]}if(!selector||typeof selector!=3D=3D"string"){return = results}var = parts=3D[],m,set,checkSet,check,mode,extra,prune=3Dtrue;chunker.lastIndex= =3D0;while((m=3Dchunker.exec(selector))!=3D=3Dnull){parts.push(m[1]);if(m= [2]){extra=3DRegExp.rightContext;break}}if(parts.length>1&&origPOS.exec(s= elector)){if(parts.length=3D=3D=3D2&&Expr.relative[parts[0]]){set=3DposPr= ocess(parts[0]+parts[1],context)}else{set=3DExpr.relative[parts[0]]?[cont= ext]:Sizzle(parts.shift(),context);while(parts.length){selector=3Dparts.s= hift();if(Expr.relative[selector]){selector+=3Dparts.shift()}set=3DposPro= cess(selector,set)}}}else{var = ret=3Dseed?{expr:parts.pop(),set:makeArray(seed)}:Sizzle.find(parts.pop()= ,parts.length=3D=3D=3D1&&context.parentNode?context.parentNode:context,is= XML(context));set=3DSizzle.filter(ret.expr,ret.set);if(parts.length>0){ch= eckSet=3DmakeArray(set)}else{prune=3Dfalse}while(parts.length){var = cur=3Dparts.pop(),pop=3Dcur;if(!Expr.relative[cur]){cur=3D""}else{pop=3Dp= arts.pop()}if(pop=3D=3Dnull){pop=3Dcontext}Expr.relative[cur](checkSet,po= p,isXML(context))}}if(!checkSet){checkSet=3Dset}if(!checkSet){throw"Synta= x error, unrecognized expression: = "+(cur||selector)}if(toString.call(checkSet)=3D=3D=3D"[object = Array]"){if(!prune){results.push.apply(results,checkSet)}else{if(context.= nodeType=3D=3D=3D1){for(var = i=3D0;checkSet[i]!=3Dnull;i++){if(checkSet[i]&&(checkSet[i]=3D=3D=3Dtrue|= |checkSet[i].nodeType=3D=3D=3D1&&contains(context,checkSet[i]))){results.= push(set[i])}}}else{for(var = i=3D0;checkSet[i]!=3Dnull;i++){if(checkSet[i]&&checkSet[i].nodeType=3D=3D= =3D1){results.push(set[i])}}}}}else{makeArray(checkSet,results)}if(extra)= {Sizzle(extra,context,results,seed);if(sortOrder){hasDuplicate=3Dfalse;re= sults.sort(sortOrder);if(hasDuplicate){for(var = i=3D1;i":function(ch= eckSet,part,isXML){var isPartStr=3Dtypeof = part=3D=3D=3D"string";if(isPartStr&&!/\W/.test(part)){part=3DisXML?part:p= art.toUpperCase();for(var i=3D0,l=3DcheckSet.length;i1||/^\w/.test(match[3])){matc= h[3]=3DSizzle(match[3],null,null,curLoop)}else{var = ret=3DSizzle.filter(match[3],curLoop,inplace,true^not);if(!inplace){resul= t.push.apply(result,ret)}return = false}}else{if(Expr.match.POS.test(match[0])||Expr.match.CHILD.test(match= [0])){return true}}return = match},POS:function(match){match.unshift(true);return = match}},filters:{enabled:function(elem){return = elem.disabled=3D=3D=3Dfalse&&elem.type!=3D=3D"hidden"},disabled:function(= elem){return elem.disabled=3D=3D=3Dtrue},checked:function(elem){return = elem.checked=3D=3D=3Dtrue},selected:function(elem){elem.parentNode.select= edIndex;return elem.selected=3D=3D=3Dtrue},parent:function(elem){return = !!elem.firstChild},empty:function(elem){return = !elem.firstChild},has:function(elem,i,match){return = !!Sizzle(match[3],elem).length},header:function(elem){return/h\d/i.test(e= lem.nodeName)},text:function(elem){return"text"=3D=3D=3Delem.type},radio:= function(elem){return"radio"=3D=3D=3Delem.type},checkbox:function(elem){r= eturn"checkbox"=3D=3D=3Delem.type},file:function(elem){return"file"=3D=3D= =3Delem.type},password:function(elem){return"password"=3D=3D=3Delem.type}= ,submit:function(elem){return"submit"=3D=3D=3Delem.type},image:function(e= lem){return"image"=3D=3D=3Delem.type},reset:function(elem){return"reset"=3D= =3D=3Delem.type},button:function(elem){return"button"=3D=3D=3Delem.type||= elem.nodeName.toUpperCase()=3D=3D=3D"BUTTON"},input:function(elem){return= /input|select|textarea|button/i.test(elem.nodeName)}},setFilters:{first:f= unction(elem,i){return = i=3D=3D=3D0},last:function(elem,i,match,array){return = i=3D=3D=3Darray.length-1},even:function(elem,i){return = i%2=3D=3D=3D0},odd:function(elem,i){return = i%2=3D=3D=3D1},lt:function(elem,i,match){return = imatch[3]-0},nth:function(elem,i,match){return = match[3]-0=3D=3Di},eq:function(elem,i,match){return = match[3]-0=3D=3Di}},filter:{PSEUDO:function(elem,match,i,array){var = name=3Dmatch[1],filter=3DExpr.filters[name];if(filter){return = filter(elem,i,match,array)}else{if(name=3D=3D=3D"contains"){return(elem.t= extContent||elem.innerText||"").indexOf(match[3])>=3D0}else{if(name=3D=3D= =3D"not"){var not=3Dmatch[3];for(var = i=3D0,l=3Dnot.length;i=3D0)}}},ID:functio= n(elem,match){return = elem.nodeType=3D=3D=3D1&&elem.getAttribute("id")=3D=3D=3Dmatch},TAG:funct= ion(elem,match){return(match=3D=3D=3D"*"&&elem.nodeType=3D=3D=3D1)||elem.= nodeName=3D=3D=3Dmatch},CLASS:function(elem,match){return(" = "+(elem.className||elem.getAttribute("class"))+" = ").indexOf(match)>-1},ATTR:function(elem,match){var = name=3Dmatch[1],result=3DExpr.attrHandle[name]?Expr.attrHandle[name](elem= ):elem[name]!=3Dnull?elem[name]:elem.getAttribute(name),value=3Dresult+""= ,type=3Dmatch[2],check=3Dmatch[4];return = result=3D=3Dnull?type=3D=3D=3D"!=3D":type=3D=3D=3D"=3D"?value=3D=3D=3Dche= ck:type=3D=3D=3D"*=3D"?value.indexOf(check)>=3D0:type=3D=3D=3D"~=3D"?(" = "+value+" = ").indexOf(check)>=3D0:!check?value&&result!=3D=3Dfalse:type=3D=3D=3D"!=3D= "?value!=3Dcheck:type=3D=3D=3D"^=3D"?value.indexOf(check)=3D=3D=3D0:type=3D= =3D=3D"$=3D"?value.substr(value.length-check.length)=3D=3D=3Dcheck:type=3D= =3D=3D"|=3D"?value=3D=3D=3Dcheck||value.substr(0,check.length+1)=3D=3D=3D= check+"-":false},POS:function(elem,match,i,array){var = name=3Dmatch[2],filter=3DExpr.setFilters[name];if(filter){return = filter(elem,i,match,array)}}}};var origPOS=3DExpr.match.POS;for(var type = in = Expr.match){Expr.match[type]=3DRegExp(Expr.match[type].source+/(?![^\[]*\= ])(?![^\(]*\))/.source)}var = makeArray=3Dfunction(array,results){array=3DArray.prototype.slice.call(ar= ray);if(results){results.push.apply(results,array);return results}return = array};try{Array.prototype.slice.call(document.documentElement.childNodes= )}catch(e){makeArray=3Dfunction(array,results){var = ret=3Dresults||[];if(toString.call(array)=3D=3D=3D"[object = Array]"){Array.prototype.push.apply(ret,array)}else{if(typeof = array.length=3D=3D=3D"number"){for(var = i=3D0,l=3Darray.length;i";var = root=3Ddocument.documentElement;root.insertBefore(form,root.firstChild);i= f(!!document.getElementById(id)){Expr.find.ID=3Dfunction(match,context,is= XML){if(typeof context.getElementById!=3D=3D"undefined"&&!isXML){var = m=3Dcontext.getElementById(match[1]);return = m?m.id=3D=3D=3Dmatch[1]||typeof = m.getAttributeNode!=3D=3D"undefined"&&m.getAttributeNode("id").nodeValue=3D= =3D=3Dmatch[1]?[m]:undefined:[]}};Expr.filter.ID=3Dfunction(elem,match){v= ar node=3Dtypeof = elem.getAttributeNode!=3D=3D"undefined"&&elem.getAttributeNode("id");retu= rn = elem.nodeType=3D=3D=3D1&&node&&node.nodeValue=3D=3D=3Dmatch}}root.removeC= hild(form)})();(function(){var = div=3Ddocument.createElement("div");div.appendChild(document.createCommen= t(""));if(div.getElementsByTagName("*").length>0){Expr.find.TAG=3Dfunctio= n(match,context){var = results=3Dcontext.getElementsByTagName(match[1]);if(match[1]=3D=3D=3D"*")= {var tmp=3D[];for(var = i=3D0;results[i];i++){if(results[i].nodeType=3D=3D=3D1){tmp.push(results[= i])}}results=3Dtmp}return results}}div.innerHTML=3D"";if(div.firstChild&&typeof = div.firstChild.getAttribute!=3D=3D"undefined"&&div.firstChild.getAttribut= e("href")!=3D=3D"#"){Expr.attrHandle.href=3Dfunction(elem){return = elem.getAttribute("href",2)}}})();if(document.querySelectorAll){(function= (){var = oldSizzle=3DSizzle,div=3Ddocument.createElement("div");div.innerHTML=3D"<= p = class=3D'TEST'>

";if(div.querySelectorAll&&div.querySelectorAll(".TEST= ").length=3D=3D=3D0){return = }Sizzle=3Dfunction(query,context,extra,seed){context=3Dcontext||document;= if(!seed&&context.nodeType=3D=3D=3D9&&!isXML(context)){try{return = makeArray(context.querySelectorAll(query),extra)}catch(e){}}return = oldSizzle(query,context,extra,seed)};Sizzle.find=3DoldSizzle.find;Sizzle.= filter=3DoldSizzle.filter;Sizzle.selectors=3DoldSizzle.selectors;Sizzle.m= atches=3DoldSizzle.matches})()}if(document.getElementsByClassName&&docume= nt.documentElement.getElementsByClassName){(function(){var = div=3Ddocument.createElement("div");div.innerHTML=3D"
";if(div.getElementsByClassName("e").length=3D=3D=3D= 0){return = }div.lastChild.className=3D"e";if(div.getElementsByClassName("e").length=3D= =3D=3D1){return = }Expr.order.splice(1,0,"CLASS");Expr.find.CLASS=3Dfunction(match,context,= isXML){if(typeof = context.getElementsByClassName!=3D=3D"undefined"&&!isXML){return = context.getElementsByClassName(match[1])}}})()}function = dirNodeCheck(dir,cur,doneName,checkSet,nodeCheck,isXML){var = sibDir=3Ddir=3D=3D"previousSibling"&&!isXML;for(var = i=3D0,l=3DcheckSet.length;i0){match=3Delem;break}}}elem=3Delem[dir]}che= ckSet[i]=3Dmatch}}}var = contains=3Ddocument.compareDocumentPosition?function(a,b){return = a.compareDocumentPosition(b)&16}:function(a,b){return = a!=3D=3Db&&(a.contains?a.contains(b):true)};var = isXML=3Dfunction(elem){return = elem.nodeType=3D=3D=3D9&&elem.documentElement.nodeName!=3D=3D"HTML"||!!el= em.ownerDocument&&isXML(elem.ownerDocument)};var = posProcess=3Dfunction(selector,context){var = tmpSet=3D[],later=3D"",match,root=3Dcontext.nodeType?[context]:context;wh= ile((match=3DExpr.match.PSEUDO.exec(selector))){later+=3Dmatch[0];selecto= r=3Dselector.replace(Expr.match.PSEUDO,"")}selector=3DExpr.relative[selec= tor]?selector+"*":selector;for(var = i=3D0,l=3Droot.length;i0||elem.offsetHeight>0};Sizzle.selectors.filters.animate= d=3Dfunction(elem){return jQuery.grep(jQuery.timers,function(fn){return = elem=3D=3D=3Dfn.elem}).length};jQuery.multiFilter=3Dfunction(expr,elems,n= ot){if(not){expr=3D":not("+expr+")"}return = Sizzle.matches(expr,elems)};jQuery.dir=3Dfunction(elem,dir){var = matched=3D[],cur=3Delem[dir];while(cur&&cur!=3Ddocument){if(cur.nodeType=3D= =3D1){matched.push(cur)}cur=3Dcur[dir]}return = matched};jQuery.nth=3Dfunction(cur,result,dir,elem){result=3Dresult||1;va= r = num=3D0;for(;cur;cur=3Dcur[dir]){if(cur.nodeType=3D=3D1&&++num=3D=3Dresul= t){break}}return cur};jQuery.sibling=3Dfunction(n,elem){var = r=3D[];for(;n;n=3Dn.nextSibling){if(n.nodeType=3D=3D1&&n!=3Delem){r.push(= n)}}return r};return = ;window.Sizzle=3DSizzle})();jQuery.event=3D{add:function(elem,types,handl= er,data){if(elem.nodeType=3D=3D3||elem.nodeType=3D=3D8){return = }if(elem.setInterval&&elem!=3Dwindow){elem=3Dwindow}if(!handler.guid){han= dler.guid=3Dthis.guid++}if(data!=3D=3Dundefined){var = fn=3Dhandler;handler=3Dthis.proxy(fn);handler.data=3Ddata}var = events=3DjQuery.data(elem,"events")||jQuery.data(elem,"events",{}),handle= =3DjQuery.data(elem,"handle")||jQuery.data(elem,"handle",function(){retur= n typeof = jQuery!=3D=3D"undefined"&&!jQuery.event.triggered?jQuery.event.handle.app= ly(arguments.callee.elem,arguments):undefined});handle.elem=3Delem;jQuery= .each(types.split(/\s+/),function(index,type){var = namespaces=3Dtype.split(".");type=3Dnamespaces.shift();handler.type=3Dnam= espaces.slice().sort().join(".");var = handlers=3Devents[type];if(jQuery.event.specialAll[type]){jQuery.event.sp= ecialAll[type].setup.call(elem,data,namespaces)}if(!handlers){handlers=3D= events[type]=3D{};if(!jQuery.event.special[type]||jQuery.event.special[ty= pe].setup.call(elem,data,namespaces)=3D=3D=3Dfalse){if(elem.addEventListe= ner){elem.addEventListener(type,handle,false)}else{if(elem.attachEvent){e= lem.attachEvent("on"+type,handle)}}}}handlers[handler.guid]=3Dhandler;jQu= ery.event.global[type]=3Dtrue});elem=3Dnull},guid:1,global:{},remove:func= tion(elem,types,handler){if(elem.nodeType=3D=3D3||elem.nodeType=3D=3D8){r= eturn }var = events=3DjQuery.data(elem,"events"),ret,index;if(events){if(types=3D=3D=3D= undefined||(typeof = types=3D=3D=3D"string"&&types.charAt(0)=3D=3D".")){for(var type in = events){this.remove(elem,type+(types||""))}}else{if(types.type){handler=3D= types.handler;types=3Dtypes.type}jQuery.each(types.split(/\s+/),function(= index,type){var = namespaces=3Dtype.split(".");type=3Dnamespaces.shift();var = namespace=3DRegExp("(^|\\.)"+namespaces.slice().sort().join(".*\\.")+"(\\= .|$)");if(events[type]){if(handler){delete = events[type][handler.guid]}else{for(var handle in = events[type]){if(namespace.test(events[type][handle].type)){delete = events[type][handle]}}}if(jQuery.event.specialAll[type]){jQuery.event.spe= cialAll[type].teardown.call(elem,namespaces)}for(ret in = events[type]){break}if(!ret){if(!jQuery.event.special[type]||jQuery.event= .special[type].teardown.call(elem,namespaces)=3D=3D=3Dfalse){if(elem.remo= veEventListener){elem.removeEventListener(type,jQuery.data(elem,"handle")= ,false)}else{if(elem.detachEvent){elem.detachEvent("on"+type,jQuery.data(= elem,"handle"))}}}ret=3Dnull;delete events[type]}}})}for(ret in = events){break}if(!ret){var = handle=3DjQuery.data(elem,"handle");if(handle){handle.elem=3Dnull}jQuery.= removeData(elem,"events");jQuery.removeData(elem,"handle")}}},trigger:fun= ction(event,data,elem,bubbling){var = type=3Devent.type||event;if(!bubbling){event=3Dtypeof = event=3D=3D=3D"object"?event[expando]?event:jQuery.extend(jQuery.Event(ty= pe),event):jQuery.Event(type);if(type.indexOf("!")>=3D0){event.type=3Dtyp= e=3Dtype.slice(0,-1);event.exclusive=3Dtrue}if(!elem){event.stopPropagati= on();if(this.global[type]){jQuery.each(jQuery.cache,function(){if(this.ev= ents&&this.events[type]){jQuery.event.trigger(event,data,this.handle.elem= )}})}}if(!elem||elem.nodeType=3D=3D3||elem.nodeType=3D=3D8){return = undefined}event.result=3Dundefined;event.target=3Delem;data=3DjQuery.make= Array(data);data.unshift(event)}event.currentTarget=3Delem;var = handle=3DjQuery.data(elem,"handle");if(handle){handle.apply(elem,data)}if= ((!elem[type]||(jQuery.nodeName(elem,"a")&&type=3D=3D"click"))&&elem["on"= +type]&&elem["on"+type].apply(elem,data)=3D=3D=3Dfalse){event.result=3Dfa= lse}if(!bubbling&&elem[type]&&!event.isDefaultPrevented()&&!(jQuery.nodeN= ame(elem,"a")&&type=3D=3D"click")){this.triggered=3Dtrue;try{elem[type]()= }catch(e){}}this.triggered=3Dfalse;if(!event.isPropagationStopped()){var = parent=3Delem.parentNode||elem.ownerDocument;if(parent){jQuery.event.trig= ger(event,data,parent,true)}}},handle:function(event){var = all,handlers;event=3Darguments[0]=3DjQuery.event.fix(event||window.event)= ;event.currentTarget=3Dthis;var = namespaces=3Devent.type.split(".");event.type=3Dnamespaces.shift();all=3D= !namespaces.length&&!event.exclusive;var = namespace=3DRegExp("(^|\\.)"+namespaces.slice().sort().join(".*\\.")+"(\\= .|$)");handlers=3D(jQuery.data(this,"events")||{})[event.type];for(var j = in handlers){var = handler=3Dhandlers[j];if(all||namespace.test(handler.type)){event.handler= =3Dhandler;event.data=3Dhandler.data;var = ret=3Dhandler.apply(this,arguments);if(ret!=3D=3Dundefined){event.result=3D= ret;if(ret=3D=3D=3Dfalse){event.preventDefault();event.stopPropagation()}= }if(event.isImmediatePropagationStopped()){break}}}},props:"altKey = attrChange attrName bubbles button cancelable charCode clientX clientY = ctrlKey currentTarget data detail eventPhase fromElement handler keyCode = metaKey newValue originalTarget pageX pageY prevValue relatedNode = relatedTarget screenX screenY shiftKey srcElement target toElement view = wheelDelta which".split(" = "),fix:function(event){if(event[expando]){return event}var = originalEvent=3Devent;event=3DjQuery.Event(originalEvent);for(var = i=3Dthis.props.length,prop;i;){prop=3Dthis.props[--i];event[prop]=3Dorigi= nalEvent[prop]}if(!event.target){event.target=3Devent.srcElement||documen= t}if(event.target.nodeType=3D=3D3){event.target=3Devent.target.parentNode= }if(!event.relatedTarget&&event.fromElement){event.relatedTarget=3Devent.= fromElement=3D=3Devent.target?event.toElement:event.fromElement}if(event.= pageX=3D=3Dnull&&event.clientX!=3Dnull){var = doc=3Ddocument.documentElement,body=3Ddocument.body;event.pageX=3Devent.c= lientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc.clientLeft||0= );event.pageY=3Devent.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||= 0)-(doc.clientTop||0)}if(!event.which&&((event.charCode||event.charCode=3D= =3D=3D0)?event.charCode:event.keyCode)){event.which=3Devent.charCode||eve= nt.keyCode}if(!event.metaKey&&event.ctrlKey){event.metaKey=3Devent.ctrlKe= y}if(!event.which&&event.button){event.which=3D(event.button&1?1:(event.b= utton&2?3:(event.button&4?2:0)))}return = event},proxy:function(fn,proxy){proxy=3Dproxy||function(){return = fn.apply(this,arguments)};proxy.guid=3Dfn.guid=3Dfn.guid||proxy.guid||thi= s.guid++;return = proxy},special:{ready:{setup:bindReady,teardown:function(){}}},specialAll= :{live:{setup:function(selector,namespaces){jQuery.event.add(this,namespa= ces[0],liveHandler)},teardown:function(namespaces){if(namespaces.length){= var = remove=3D0,name=3DRegExp("(^|\\.)"+namespaces[0]+"(\\.|$)");jQuery.each((= jQuery.data(this,"events").live||{}),function(){if(name.test(this.type)){= remove++}});if(remove<1){jQuery.event.remove(this,namespaces[0],liveHandl= er)}}}}}};jQuery.Event=3Dfunction(src){if(!this.preventDefault){return = new = jQuery.Event(src)}if(src&&src.type){this.originalEvent=3Dsrc;this.type=3D= src.type}else{this.type=3Dsrc}this.timeStamp=3Dnow();this[expando]=3Dtrue= };function returnFalse(){return false}function returnTrue(){return = true}jQuery.Event.prototype=3D{preventDefault:function(){this.isDefaultPr= evented=3DreturnTrue;var e=3Dthis.originalEvent;if(!e){return = }if(e.preventDefault){e.preventDefault()}e.returnValue=3Dfalse},stopPropa= gation:function(){this.isPropagationStopped=3DreturnTrue;var = e=3Dthis.originalEvent;if(!e){return = }if(e.stopPropagation){e.stopPropagation()}e.cancelBubble=3Dtrue},stopImm= ediatePropagation:function(){this.isImmediatePropagationStopped=3DreturnT= rue;this.stopPropagation()},isDefaultPrevented:returnFalse,isPropagationS= topped:returnFalse,isImmediatePropagationStopped:returnFalse};var = withinElement=3Dfunction(event){var = parent=3Devent.relatedTarget;while(parent&&parent!=3Dthis){try{parent=3Dp= arent.parentNode}catch(e){parent=3Dthis}}if(parent!=3Dthis){event.type=3D= event.data;jQuery.event.handle.apply(this,arguments)}};jQuery.each({mouse= over:"mouseenter",mouseout:"mouseleave"},function(orig,fix){jQuery.event.= special[fix]=3D{setup:function(){jQuery.event.add(this,orig,withinElement= ,fix)},teardown:function(){jQuery.event.remove(this,orig,withinElement)}}= });jQuery.fn.extend({bind:function(type,data,fn){return = type=3D=3D"unload"?this.one(type,data,fn):this.each(function(){jQuery.eve= nt.add(this,type,fn||data,fn&&data)})},one:function(type,data,fn){var = one=3DjQuery.event.proxy(fn||data,function(event){jQuery(this).unbind(eve= nt,one);return(fn||data).apply(this,arguments)});return = this.each(function(){jQuery.event.add(this,type,one,fn&&data)})},unbind:f= unction(type,fn){return = this.each(function(){jQuery.event.remove(this,type,fn)})},trigger:functio= n(type,data){return = this.each(function(){jQuery.event.trigger(type,data,this)})},triggerHandl= er:function(type,data){if(this[0]){var = event=3DjQuery.Event(type);event.preventDefault();event.stopPropagation()= ;jQuery.event.trigger(event,data,this[0]);return = event.result}},toggle:function(fn){var = args=3Darguments,i=3D1;while(i
a';var = all=3Ddiv.getElementsByTagName("*"),a=3Ddiv.getElementsByTagName("a")[0];= if(!all||!all.length||!a){return = }jQuery.support=3D{leadingWhitespace:div.firstChild.nodeType=3D=3D3,tbody= :!div.getElementsByTagName("tbody").length,objectAll:!!div.getElementsByT= agName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!div.= getElementsByTagName("link").length,style:/red/.test(a.getAttribute("styl= e")),hrefNormalized:a.getAttribute("href")=3D=3D=3D"/a",opacity:a.style.o= pacity=3D=3D=3D"0.5",cssFloat:!!a.style.cssFloat,scriptEval:false,noClone= Event:true,boxModel:null};script.type=3D"text/javascript";try{script.appe= ndChild(document.createTextNode("window."+id+"=3D1;"))}catch(e){}root.ins= ertBefore(script,root.firstChild);if(window[id]){jQuery.support.scriptEva= l=3Dtrue;delete = window[id]}root.removeChild(script);if(div.attachEvent&&div.fireEvent){di= v.attachEvent("onclick",function(){jQuery.support.noCloneEvent=3Dfalse;di= v.detachEvent("onclick",arguments.callee)});div.cloneNode(true).fireEvent= ("onclick")}jQuery(function(){var = div=3Ddocument.createElement("div");div.style.width=3Ddiv.style.paddingLe= ft=3D"1px";document.body.appendChild(div);jQuery.boxModel=3DjQuery.suppor= t.boxModel=3Ddiv.offsetWidth=3D=3D=3D2;document.body.removeChild(div).sty= le.display=3D"none"})})();var = styleFloat=3DjQuery.support.cssFloat?"cssFloat":"styleFloat";jQuery.props= =3D{"for":"htmlFor","class":"className","float":styleFloat,cssFloat:style= Float,styleFloat:styleFloat,readonly:"readOnly",maxlength:"maxLength",cel= lspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};jQuery.fn.e= xtend({_load:jQuery.fn.load,load:function(url,params,callback){if(typeof = url!=3D=3D"string"){return this._load(url)}var off=3Durl.indexOf(" = ");if(off>=3D0){var = selector=3Durl.slice(off,url.length);url=3Durl.slice(0,off)}var = type=3D"GET";if(params){if(jQuery.isFunction(params)){callback=3Dparams;p= arams=3Dnull}else{if(typeof = params=3D=3D=3D"object"){params=3DjQuery.param(params);type=3D"POST"}}}va= r = self=3Dthis;jQuery.ajax({url:url,type:type,dataType:"html",data:params,co= mplete:function(res,status){if(status=3D=3D"success"||status=3D=3D"notmod= ified"){self.html(selector?jQuery("
").append(res.responseText.repla= ce(//g,"")).find(selector):res.responseText)}if(c= allback){self.each(callback,[res.responseText,status,res])}}});return = this},serialize:function(){return = jQuery.param(this.serializeArray())},serializeArray:function(){return = this.map(function(){return = this.elements?jQuery.makeArray(this.elements):this}).filter(function(){re= turn = this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.no= deName)||/text|hidden|password|search/i.test(this.type))}).map(function(i= ,elem){var val=3DjQuery(this).val();return = val=3D=3Dnull?null:jQuery.isArray(val)?jQuery.map(val,function(val,i){ret= urn{name:elem.name,value:val}}):{name:elem.name,value:val}}).get()}});jQu= ery.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend"= .split(","),function(i,o){jQuery.fn[o]=3Dfunction(f){return = this.bind(o,f)}});var = jsc=3Dnow();jQuery.extend({get:function(url,data,callback,type){if(jQuery= .isFunction(data)){callback=3Ddata;data=3Dnull}return = jQuery.ajax({type:"GET",url:url,data:data,success:callback,dataType:type}= )},getScript:function(url,callback){return = jQuery.get(url,null,callback,"script")},getJSON:function(url,data,callbac= k){return = jQuery.get(url,data,callback,"json")},post:function(url,data,callback,typ= e){if(jQuery.isFunction(data)){callback=3Ddata;data=3D{}}return = jQuery.ajax({type:"POST",url:url,data:data,success:callback,dataType:type= })},ajaxSetup:function(settings){jQuery.extend(jQuery.ajaxSettings,settin= gs)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"= application/x-www-form-urlencoded",processData:true,async:true,xhr:functi= on(){return window.ActiveXObject?new = ActiveXObject("Microsoft.XMLHTTP"):new = XMLHttpRequest()},accepts:{xml:"application/xml, = text/xml",html:"text/html",script:"text/javascript, = application/javascript",json:"application/json, = text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:= function(s){s=3DjQuery.extend(true,s,jQuery.extend(true,{},jQuery.ajaxSet= tings,s));var = jsonp,jsre=3D/=3D\?(&|$)/g,status,data,type=3Ds.type.toUpperCase();if(s.d= ata&&s.processData&&typeof = s.data!=3D=3D"string"){s.data=3DjQuery.param(s.data)}if(s.dataType=3D=3D"= jsonp"){if(type=3D=3D"GET"){if(!s.url.match(jsre)){s.url+=3D(s.url.match(= /\?/)?"&":"?")+(s.jsonp||"callback")+"=3D?"}}else{if(!s.data||!s.data.mat= ch(jsre)){s.data=3D(s.data?s.data+"&":"")+(s.jsonp||"callback")+"=3D?"}}s= .dataType=3D"json"}if(s.dataType=3D=3D"json"&&(s.data&&s.data.match(jsre)= ||s.url.match(jsre))){jsonp=3D"jsonp"+jsc++;if(s.data){s.data=3D(s.data+"= ").replace(jsre,"=3D"+jsonp+"$1")}s.url=3Ds.url.replace(jsre,"=3D"+jsonp+= "$1");s.dataType=3D"script";window[jsonp]=3Dfunction(tmp){data=3Dtmp;succ= ess();complete();window[jsonp]=3Dundefined;try{delete = window[jsonp]}catch(e){}if(head){head.removeChild(script)}}}if(s.dataType= =3D=3D"script"&&s.cache=3D=3Dnull){s.cache=3Dfalse}if(s.cache=3D=3D=3Dfal= se&&type=3D=3D"GET"){var ts=3Dnow();var = ret=3Ds.url.replace(/(\?|&)_=3D.*?(&|$)/,"$1_=3D"+ts+"$2");s.url=3Dret+((= ret=3D=3Ds.url)?(s.url.match(/\?/)?"&":"?")+"_=3D"+ts:"")}if(s.data&&type= =3D=3D"GET"){s.url+=3D(s.url.match(/\?/)?"&":"?")+s.data;s.data=3Dnull}if= (s.global&&!jQuery.active++){jQuery.event.trigger("ajaxStart")}var = parts=3D/^(\w+:)?\/\/([^\/?#]+)/.exec(s.url);if(s.dataType=3D=3D"script"&= &type=3D=3D"GET"&&parts&&(parts[1]&&parts[1]!=3Dlocation.protocol||parts[= 2]!=3Dlocation.host)){var = head=3Ddocument.getElementsByTagName("head")[0];var = script=3Ddocument.createElement("script");script.src=3Ds.url;if(s.scriptC= harset){script.charset=3Ds.scriptCharset}if(!jsonp){var = done=3Dfalse;script.onload=3Dscript.onreadystatechange=3Dfunction(){if(!d= one&&(!this.readyState||this.readyState=3D=3D"loaded"||this.readyState=3D= =3D"complete")){done=3Dtrue;success();complete();script.onload=3Dscript.o= nreadystatechange=3Dnull;head.removeChild(script)}}}head.appendChild(scri= pt);return undefined}var requestDone=3Dfalse;var = xhr=3Ds.xhr();if(s.username){xhr.open(type,s.url,s.async,s.username,s.pas= sword)}else{xhr.open(type,s.url,s.async)}try{if(s.data){xhr.setRequestHea= der("Content-Type",s.contentType)}if(s.ifModified){xhr.setRequestHeader("= If-Modified-Since",jQuery.lastModified[s.url]||"Thu, 01 Jan 1970 = 00:00:00 = GMT")}xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");xhr.setRe= questHeader("Accept",s.dataType&&s.accepts[s.dataType]?s.accepts[s.dataTy= pe]+", = */*":s.accepts._default)}catch(e){}if(s.beforeSend&&s.beforeSend(xhr,s)=3D= =3D=3Dfalse){if(s.global&&!--jQuery.active){jQuery.event.trigger("ajaxSto= p")}xhr.abort();return = false}if(s.global){jQuery.event.trigger("ajaxSend",[xhr,s])}var = onreadystatechange=3Dfunction(isTimeout){if(xhr.readyState=3D=3D0){if(iva= l){clearInterval(ival);ival=3Dnull;if(s.global&&!--jQuery.active){jQuery.= event.trigger("ajaxStop")}}}else{if(!requestDone&&xhr&&(xhr.readyState=3D= =3D4||isTimeout=3D=3D"timeout")){requestDone=3Dtrue;if(ival){clearInterva= l(ival);ival=3Dnull}status=3DisTimeout=3D=3D"timeout"?"timeout":!jQuery.h= ttpSuccess(xhr)?"error":s.ifModified&&jQuery.httpNotModified(xhr,s.url)?"= notmodified":"success";if(status=3D=3D"success"){try{data=3DjQuery.httpDa= ta(xhr,s.dataType,s)}catch(e){status=3D"parsererror"}}if(status=3D=3D"suc= cess"){var = modRes;try{modRes=3Dxhr.getResponseHeader("Last-Modified")}catch(e){}if(s= .ifModified&&modRes){jQuery.lastModified[s.url]=3DmodRes}if(!jsonp){succe= ss()}}else{jQuery.handleError(s,xhr,status)}complete();if(isTimeout){xhr.= abort()}if(s.async){xhr=3Dnull}}}};if(s.async){var = ival=3DsetInterval(onreadystatechange,13);if(s.timeout>0){setTimeout(func= tion(){if(xhr&&!requestDone){onreadystatechange("timeout")}},s.timeout)}}= try{xhr.send(s.data)}catch(e){jQuery.handleError(s,xhr,null,e)}if(!s.asyn= c){onreadystatechange()}function = success(){if(s.success){s.success(data,status)}if(s.global){jQuery.event.= trigger("ajaxSuccess",[xhr,s])}}function = complete(){if(s.complete){s.complete(xhr,status)}if(s.global){jQuery.even= t.trigger("ajaxComplete",[xhr,s])}if(s.global&&!--jQuery.active){jQuery.e= vent.trigger("ajaxStop")}}return = xhr},handleError:function(s,xhr,status,e){if(s.error){s.error(xhr,status,= e)}if(s.global){jQuery.event.trigger("ajaxError",[xhr,s,e])}},active:0,ht= tpSuccess:function(xhr){try{return = !xhr.status&&location.protocol=3D=3D"file:"||(xhr.status>=3D200&&xhr.stat= us<300)||xhr.status=3D=3D304||xhr.status=3D=3D1223}catch(e){}return = false},httpNotModified:function(xhr,url){try{var = xhrRes=3Dxhr.getResponseHeader("Last-Modified");return = xhr.status=3D=3D304||xhrRes=3D=3DjQuery.lastModified[url]}catch(e){}retur= n false},httpData:function(xhr,type,s){var = ct=3Dxhr.getResponseHeader("content-type"),xml=3Dtype=3D=3D"xml"||!type&&= ct&&ct.indexOf("xml")>=3D0,data=3Dxml?xhr.responseXML:xhr.responseText;if= (xml&&data.documentElement.tagName=3D=3D"parsererror"){throw"parsererror"= }if(s&&s.dataFilter){data=3Ds.dataFilter(data,type)}if(typeof = data=3D=3D=3D"string"){if(type=3D=3D"script"){jQuery.globalEval(data)}if(= type=3D=3D"json"){data=3Dwindow["eval"]("("+data+")")}}return = data},param:function(a){var s=3D[];function = add(key,value){s[s.length]=3DencodeURIComponent(key)+"=3D"+encodeURICompo= nent(value)}if(jQuery.isArray(a)||a.jquery){jQuery.each(a,function(){add(= this.name,this.value)})}else{for(var j in = a){if(jQuery.isArray(a[j])){jQuery.each(a[j],function(){add(j,this)})}els= e{add(j,jQuery.isFunction(a[j])?a[j]():a[j])}}}return = s.join("&").replace(/%20/g,"+")}});var = elemdisplay=3D{},timerId,fxAttrs=3D[["height","marginTop","marginBottom",= "paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddin= gLeft","paddingRight"],["opacity"]];function genFx(type,num){var = obj=3D{};jQuery.each(fxAttrs.concat.apply([],fxAttrs.slice(0,num)),functi= on(){obj[this]=3Dtype});return = obj}jQuery.fn.extend({show:function(speed,callback){if(speed){return = this.animate(genFx("show",3),speed,callback)}else{for(var = i=3D0,l=3Dthis.length;i").appendTo("body");display=3Delem.css("display");if(display=3D=3D=3D"n= one"){display=3D"block"}elem.remove();elemdisplay[tagName]=3Ddisplay}jQue= ry.data(this[i],"olddisplay",display)}}for(var = i=3D0,l=3Dthis.length;i=3D0;i--){if(timers[i].elem=3D=3Dthis){if(gotoEnd){= timers[i](true)}timers.splice(i,1)}}});if(!gotoEnd){this.dequeue()}return= = this}});jQuery.each({slideDown:genFx("show",1),slideUp:genFx("hide",1),sl= ideToggle:genFx("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hid= e"}},function(name,props){jQuery.fn[name]=3Dfunction(speed,callback){retu= rn = this.animate(props,speed,callback)}});jQuery.extend({speed:function(speed= ,easing,fn){var opt=3Dtypeof = speed=3D=3D=3D"object"?speed:{complete:fn||!fn&&easing||jQuery.isFunction= (speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFuncti= on(easing)&&easing};opt.duration=3DjQuery.fx.off?0:typeof = opt.duration=3D=3D=3D"number"?opt.duration:jQuery.fx.speeds[opt.duration]= ||jQuery.fx.speeds._default;opt.old=3Dopt.complete;opt.complete=3Dfunctio= n(){if(opt.queue!=3D=3Dfalse){jQuery(this).dequeue()}if(jQuery.isFunction= (opt.old)){opt.old.call(this)}};return = opt},easing:{linear:function(p,n,firstNum,diff){return = firstNum+diff*p},swing:function(p,n,firstNum,diff){return((-Math.cos(p*Ma= th.PI)/2)+0.5)*diff+firstNum}},timers:[],fx:function(elem,options,prop){t= his.options=3Doptions;this.elem=3Delem;this.prop=3Dprop;if(!options.orig)= {options.orig=3D{}}}});jQuery.fx.prototype=3D{update:function(){if(this.o= ptions.step){this.options.step.call(this.elem,this.now,this)}(jQuery.fx.s= tep[this.prop]||jQuery.fx.step._default)(this);if((this.prop=3D=3D"height= "||this.prop=3D=3D"width")&&this.elem.style){this.elem.style.display=3D"b= lock"}},cur:function(force){if(this.elem[this.prop]!=3Dnull&&(!this.elem.= style||this.elem.style[this.prop]=3D=3Dnull)){return = this.elem[this.prop]}var = r=3DparseFloat(jQuery.css(this.elem,this.prop,force));return = r&&r>-10000?r:parseFloat(jQuery.curCSS(this.elem,this.prop))||0},custom:f= unction(from,to,unit){this.startTime=3Dnow();this.start=3Dfrom;this.end=3D= to;this.unit=3Dunit||this.unit||"px";this.now=3Dthis.start;this.pos=3Dthi= s.state=3D0;var self=3Dthis;function t(gotoEnd){return = self.step(gotoEnd)}t.elem=3Dthis.elem;if(t()&&jQuery.timers.push(t)&&!tim= erId){timerId=3DsetInterval(function(){var = timers=3DjQuery.timers;for(var = i=3D0;i=3Dthis.options.duration+this.startTime){this.now= =3Dthis.end;this.pos=3Dthis.state=3D1;this.update();this.options.curAnim[= this.prop]=3Dtrue;var done=3Dtrue;for(var i in = this.options.curAnim){if(this.options.curAnim[i]!=3D=3Dtrue){done=3Dfalse= }}if(done){if(this.options.display!=3Dnull){this.elem.style.overflow=3Dth= is.options.overflow;this.elem.style.display=3Dthis.options.display;if(jQu= ery.css(this.elem,"display")=3D=3D"none"){this.elem.style.display=3D"bloc= k"}}if(this.options.hide){jQuery(this.elem).hide()}if(this.options.hide||= this.options.show){for(var p in = this.options.curAnim){jQuery.attr(this.elem.style,p,this.options.orig[p])= }}this.options.complete.call(this.elem)}return false}else{var = n=3Dt-this.startTime;this.state=3Dn/this.options.duration;this.pos=3DjQue= ry.easing[this.options.easing||(jQuery.easing.swing?"swing":"linear")](th= is.state,n,0,1,this.options.duration);this.now=3Dthis.start+((this.end-th= is.start)*this.pos);this.update()}return = true}};jQuery.extend(jQuery.fx,{speeds:{slow:600,fast:200,_default:400},s= tep:{opacity:function(fx){jQuery.attr(fx.elem.style,"opacity",fx.now)},_d= efault:function(fx){if(fx.elem.style&&fx.elem.style[fx.prop]!=3Dnull){fx.= elem.style[fx.prop]=3Dfx.now+fx.unit}else{fx.elem[fx.prop]=3Dfx.now}}}});= if(document.documentElement.getBoundingClientRect){jQuery.fn.offset=3Dfun= ction(){if(!this[0]){return{top:0,left:0}}if(this[0]=3D=3D=3Dthis[0].owne= rDocument.body){return jQuery.offset.bodyOffset(this[0])}var = box=3Dthis[0].getBoundingClientRect(),doc=3Dthis[0].ownerDocument,body=3D= doc.body,docElem=3Ddoc.documentElement,clientTop=3DdocElem.clientTop||bod= y.clientTop||0,clientLeft=3DdocElem.clientLeft||body.clientLeft||0,top=3D= box.top+(self.pageYOffset||jQuery.boxModel&&docElem.scrollTop||body.scrol= lTop)-clientTop,left=3Dbox.left+(self.pageXOffset||jQuery.boxModel&&docEl= em.scrollLeft||body.scrollLeft)-clientLeft;return{top:top,left:left}}}els= e{jQuery.fn.offset=3Dfunction(){if(!this[0]){return{top:0,left:0}}if(this= [0]=3D=3D=3Dthis[0].ownerDocument.body){return = jQuery.offset.bodyOffset(this[0])}jQuery.offset.initialized||jQuery.offse= t.initialize();var = elem=3Dthis[0],offsetParent=3Delem.offsetParent,prevOffsetParent=3Delem,d= oc=3Delem.ownerDocument,computedStyle,docElem=3Ddoc.documentElement,body=3D= doc.body,defaultView=3Ddoc.defaultView,prevComputedStyle=3DdefaultView.ge= tComputedStyle(elem,null),top=3Delem.offsetTop,left=3Delem.offsetLeft;whi= le((elem=3Delem.parentNode)&&elem!=3D=3Dbody&&elem!=3D=3DdocElem){compute= dStyle=3DdefaultView.getComputedStyle(elem,null);top-=3Delem.scrollTop,le= ft-=3Delem.scrollLeft;if(elem=3D=3D=3DoffsetParent){top+=3Delem.offsetTop= ,left+=3Delem.offsetLeft;if(jQuery.offset.doesNotAddBorder&&!(jQuery.offs= et.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(elem.tagName))){t= op+=3DparseInt(computedStyle.borderTopWidth,10)||0,left+=3DparseInt(compu= tedStyle.borderLeftWidth,10)||0}prevOffsetParent=3DoffsetParent,offsetPar= ent=3Delem.offsetParent}if(jQuery.offset.subtractsBorderForOverflowNotVis= ible&&computedStyle.overflow!=3D=3D"visible"){top+=3DparseInt(computedSty= le.borderTopWidth,10)||0,left+=3DparseInt(computedStyle.borderLeftWidth,1= 0)||0}prevComputedStyle=3DcomputedStyle}if(prevComputedStyle.position=3D=3D= =3D"relative"||prevComputedStyle.position=3D=3D=3D"static"){top+=3Dbody.o= ffsetTop,left+=3Dbody.offsetLeft}if(prevComputedStyle.position=3D=3D=3D"f= ixed"){top+=3DMath.max(docElem.scrollTop,body.scrollTop),left+=3DMath.max= (docElem.scrollLeft,body.scrollLeft)}return{top:top,left:left}}}jQuery.of= fset=3D{initialize:function(){if(this.initialized){return }var = body=3Ddocument.body,container=3Ddocument.createElement("div"),innerDiv,c= heckDiv,table,td,rules,prop,bodyMarginTop=3Dbody.style.marginTop,html=3D'=
';rules=3D{position:"absolute= ",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hid= den"};for(prop in = rules){container.style[prop]=3Drules[prop]}container.innerHTML=3Dhtml;bod= y.insertBefore(container,body.firstChild);innerDiv=3Dcontainer.firstChild= ,checkDiv=3DinnerDiv.firstChild,td=3DinnerDiv.nextSibling.firstChild.firs= tChild;this.doesNotAddBorder=3D(checkDiv.offsetTop!=3D=3D5);this.doesAddB= orderForTableAndCells=3D(td.offsetTop=3D=3D=3D5);innerDiv.style.overflow=3D= "hidden",innerDiv.style.position=3D"relative";this.subtractsBorderForOver= flowNotVisible=3D(checkDiv.offsetTop=3D=3D=3D-5);body.style.marginTop=3D"= 1px";this.doesNotIncludeMarginInBodyOffset=3D(body.offsetTop=3D=3D=3D0);b= ody.style.marginTop=3DbodyMarginTop;body.removeChild(container);this.init= ialized=3Dtrue},bodyOffset:function(body){jQuery.offset.initialized||jQue= ry.offset.initialize();var = top=3Dbody.offsetTop,left=3Dbody.offsetLeft;if(jQuery.offset.doesNotInclu= deMarginInBodyOffset){top+=3DparseInt(jQuery.curCSS(body,"marginTop",true= ),10)||0,left+=3DparseInt(jQuery.curCSS(body,"marginLeft",true),10)||0}re= turn{top:top,left:left}}};jQuery.fn.extend({position:function(){var = left=3D0,top=3D0,results;if(this[0]){var = offsetParent=3Dthis.offsetParent(),offset=3Dthis.offset(),parentOffset=3D= /^body|html$/i.test(offsetParent[0].tagName)?{top:0,left:0}:offsetParent.= offset();offset.top-=3Dnum(this,"marginTop");offset.left-=3Dnum(this,"mar= ginLeft");parentOffset.top+=3Dnum(offsetParent,"borderTopWidth");parentOf= fset.left+=3Dnum(offsetParent,"borderLeftWidth");results=3D{top:offset.to= p-parentOffset.top,left:offset.left-parentOffset.left}}return = results},offsetParent:function(){var = offsetParent=3Dthis[0].offsetParent||document.body;while(offsetParent&&(!= /^body|html$/i.test(offsetParent.tagName)&&jQuery.css(offsetParent,"posit= ion")=3D=3D"static")){offsetParent=3DoffsetParent.offsetParent}return = jQuery(offsetParent)}});jQuery.each(["Left","Top"],function(i,name){var = method=3D"scroll"+name;jQuery.fn[method]=3Dfunction(val){if(!this[0]){ret= urn null}return = val!=3D=3Dundefined?this.each(function(){this=3D=3Dwindow||this=3D=3Ddocu= ment?window.scrollTo(!i?val:jQuery(window).scrollLeft(),i?val:jQuery(wind= ow).scrollTop()):this[method]=3Dval}):this[0]=3D=3Dwindow||this[0]=3D=3Dd= ocument?self[i?"pageYOffset":"pageXOffset"]||jQuery.boxModel&&document.do= cumentElement[method]||document.body[method]:this[0][method]}});jQuery.ea= ch(["Height","Width"],function(i,name){var = tl=3Di?"Left":"Top",br=3Di?"Right":"Bottom",lower=3Dname.toLowerCase();jQ= uery.fn["inner"+name]=3Dfunction(){return = this[0]?jQuery.css(this[0],lower,false,"padding"):null};jQuery.fn["outer"= +name]=3Dfunction(margin){return = this[0]?jQuery.css(this[0],lower,false,margin?"margin":"border"):null};va= r type=3Dname.toLowerCase();jQuery.fn[type]=3Dfunction(size){return = this[0]=3D=3Dwindow?document.compatMode=3D=3D"CSS1Compat"&&document.docum= entElement["client"+name]||document.body["client"+name]:this[0]=3D=3Ddocu= ment?Math.max(document.documentElement["client"+name],document.body["scro= ll"+name],document.documentElement["scroll"+name],document.body["offset"+= name],document.documentElement["offset"+name]):size=3D=3D=3Dundefined?(th= is.length?jQuery.css(this[0],type):null):this.css(type,typeof = size=3D=3D=3D"string"?size:size+"px")}})})(); ------=_NextPart_000_0129_01CBB1A9.A89E7F20 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.wired.com/js/cn-fe-common/cn.js /*global CN, console, window, location, document, Option, jQuery, = setTimeout, clearTimeout, clearInterval, setInterval */ /* for jsLint */=0A= =0A= /*=0A= * Conde Nast Digital Core JavaScript=0A= * @copyright 2008-2010 Conde Nast Digital except where specified. All = rights reserved=0A= */=0A= =0A= =0A= /*=0A= * Sets jQuery no conflict;=0A= */=0A= jQuery.noConflict();=0A= =0A= =0A= /*=0A= SECTION: EXTENSIONS TO NATIVE OBJECTS=0A= */=0A= =0A= =0A= /*=0A= Prototypal inheritance, the missing JavaScript method=0A= Author: Andrea Giammarchi=0A= Example: newObject =3D Object.make(oldObject);=0A= Reference: = http://webreflection.blogspot.com/2008/10/big-douglas-begetobject-revisit= ed.html=0A= New version recycles function constructor to cut down on memory = consumption=0A= and is based on Doug Crockford's original prototypal inheritance = function=0A= */=0A= if (typeof Object.make !=3D=3D 'function') {=0A= Object.make =3D function(F) {=0A= return function(Object) {=0A= F.prototype =3D Object;=0A= return new F();=0A= };=0A= }(function() {});=0A= }=0A= =0A= =0A= /*=0A= Memoizes a function - this DOES add to the Function.prototype=0A= @author Keith Gaughan=0A= @see = http://talideon.com/weblog/2005/07/javascript-memoization.cfm=0A= */=0A= Function.prototype.memoize =3D function() {=0A= var memo =3D {},=0A= that =3D this,=0A= obj =3D arguments.length > 0 ? arguments[i] : null, // TODO: = fails jslint, references 'i' out of scope...=0A= memoizedFn;=0A= =0A= memoizedFn =3D function() {=0A= var args =3D [],=0A= i,=0A= il;=0A= =0A= for (i =3D 0, il =3D arguments.length; i < il; i++) {=0A= args[i] =3D arguments[i];=0A= }=0A= =0A= if (!(args in memo)) {=0A= memo[args] =3D that.apply(obj, arguments);=0A= }=0A= =0A= return memo[args];=0A= };=0A= =0A= memoizedFn.unmemoize =3D function() {=0A= return that;=0A= };=0A= =0A= return memoizedFn;=0A= };=0A= =0A= /*=0A= Unmemoizes a function=0A= */=0A= Function.prototype.unmemoize =3D function() {=0A= CN.debug.info('Attempted to unmemoize a function that was never = memoized in the first place');=0A= return null;=0A= };=0A= =0A= =0A= /*=0A= Sugar Arrays (c) Creative Commons 2006=0A= http://creativecommons.org/licenses/by-sa/2.5/=0A= Author: Dustin Diaz | http://www.dustindiaz.com=0A= Reference: http://www.dustindiaz.com/basement/sugar-arrays.html=0A= */=0A= =0A= // IF checks were added by EBS to cover for a bug in jQuery whereby = jQuery=0A= // adds bogus event bindings to Array.prototype methods.=0A= // Ticket is here: http://dev.jquery.com/ticket/6355=0A= // When jQuery fixes this bug, these if (!this.splice) checks can be = removed.=0A= =0A= if (!Array.prototype.forEach) {=0A= Array.prototype.forEach =3D function(fn, thisObj) {=0A= if (!this.splice) {=0A= return;=0A= };=0A= var scope,=0A= i,=0A= j;=0A= scope =3D thisObj || window;=0A= for (i =3D 0, j =3D this.length; i < j; ++i) {=0A= fn.call(scope, this[i], i, this);=0A= }=0A= };=0A= =0A= Array.prototype.every =3D function(fn, thisObj) {=0A= if (!this.splice) {=0A= return;=0A= };=0A= var scope,=0A= i,=0A= j;=0A= scope =3D thisObj || window;=0A= for (i =3D 0, j =3D this.length; i < j; ++i) {=0A= if (!fn.call(scope, this[i], i, this)) {=0A= return false;=0A= }=0A= }=0A= return true;=0A= };=0A= =0A= Array.prototype.some =3D function(fn, thisObj) {=0A= if (!this.splice) {=0A= return;=0A= };=0A= var scope,=0A= i,=0A= j;=0A= scope =3D thisObj || window;=0A= for (i =3D 0, j =3D this.length; i < j; ++i) {=0A= if (fn.call(scope, this[i], i, this)) {=0A= return true;=0A= }=0A= }=0A= return false;=0A= };=0A= =0A= Array.prototype.map =3D function(fn, thisObj) {=0A= if (!this.splice) {=0A= return;=0A= };=0A= var scope,=0A= a,=0A= i,=0A= j;=0A= scope =3D thisObj || window;=0A= a =3D [];=0A= for (i =3D 0, j =3D this.length; i < j; ++i) {=0A= a.push(fn.call(scope, this[i], i, this));=0A= }=0A= return a;=0A= };=0A= =0A= Array.prototype.filter =3D function(fn, thisObj) {=0A= if (!this.splice) {=0A= return;=0A= };=0A= var scope,=0A= a,=0A= i,=0A= j;=0A= scope =3D thisObj || window;=0A= a =3D [];=0A= for (i =3D 0, j =3D this.length; i < j; ++i) {=0A= if (!fn.call(scope, this[i], i, this)) {=0A= continue;=0A= }=0A= a.push(this[i]);=0A= }=0A= return a;=0A= };=0A= =0A= Array.prototype.indexOf =3D function(el, start) {=0A= if (!this.splice) {=0A= return;=0A= };=0A= var i,=0A= j;=0A= start =3D start || 0;=0A= for (i =3D start, j =3D this.length; i < j; ++i) {=0A= if (this[i] =3D=3D=3D el) {=0A= return i;=0A= }=0A= }=0A= return -1;=0A= };=0A= =0A= Array.prototype.lastIndexOf =3D function(el, start) {=0A= if (!this.splice) {=0A= return;=0A= };=0A= var i;=0A= start =3D start || this.length;=0A= if (start >=3D this.length) {=0A= start =3D this.length;=0A= }=0A= if (start < 0) {=0A= start =3D this.length + start;=0A= }=0A= for (i =3D start; i >=3D 0; --i) {=0A= if (this[i] =3D=3D=3D el) {=0A= return i;=0A= }=0A= }=0A= return -1;=0A= };=0A= }=0A= =0A= =0A= /*=0A= * Remove items in an array. Not included in the above because it's not=0A= * an official part of the upcoming spec, so its implementation should be=0A= * checked separately.=0A= * @see http://ejohn.org/blog/javascript-array-remove/ = (http://ejohn.org/blog/javascript-array-remove/#comment-296138)=0A= */=0A= if (!Array.prototype.remove) {=0A= Array.prototype.remove =3D function(from, to) {=0A= if (!this.splice) {=0A= return;=0A= };=0A= this.splice(from, (to || from || 1) + (from < 0 ? this.length : = 0));=0A= return this.length;=0A= };=0A= }=0A= =0A= =0A= /*=0A= SECTION: CN CORE METHODS=0A= */=0A= =0A= =0A= if (typeof CN =3D=3D=3D 'undefined' || !CN) {=0A= /**=0A= * CN global namespace object=0A= * @namespace CN global namespace object=0A= */=0A= var CN =3D {};=0A= }=0A= =0A= =0A= /*=0A= The following methods are located at the root of CN, because they=0A= deal with primitives that jQuery does not identify. No other = functions=0A= should be placed at this level.=0A= */=0A= =0A= =0A= /**=0A= * Determines whether or not the provided object is a boolean=0A= * @param {mixed} mixed The object being testing=0A= * @return {boolean} the result=0A= */=0A= CN.isBoolean =3D function(mixed) {=0A= return typeof mixed =3D=3D=3D 'boolean';=0A= };=0A= =0A= /**=0A= * Determines whether or not the provided object is a date=0A= * @param {mixed} mixed The object being tested=0A= * @return {boolean} the result=0A= */=0A= CN.isDate =3D function(mixed) {=0A= return Object.prototype.toString.call(mixed) =3D=3D=3D '[object = Date]';=0A= };=0A= =0A= /**=0A= * Determines whether or not the provided string is empty=0A= * @param {string} str The string being tested=0A= * @return {boolean} the result=0A= */=0A= CN.isEmpty =3D function(str) {=0A= return !/\S/.test(str || '');=0A= };=0A= =0A= /**=0A= * Determines whether or not the provided object is null=0A= * @param {mixed} mixed The object being testing=0A= * @return {boolean} the result=0A= */=0A= CN.isNull =3D function(mixed) {=0A= return mixed =3D=3D=3D null;=0A= };=0A= =0A= /**=0A= * Determines whether or not the provided object is a legal number=0A= * @param {mixed} mixed The object being testing=0A= * @return {boolean} the result=0A= */=0A= CN.isNumber =3D function(mixed) {=0A= return typeof mixed =3D=3D=3D 'number' && isFinite(mixed);=0A= };=0A= =0A= /**=0A= * Determines whether or not the provided object is of type object=0A= * @param {mixed} mixed The object being testing=0A= * @return {boolean} the result=0A= */=0A= CN.isObject =3D function(mixed) {=0A= return typeof mixed =3D=3D=3D 'object';=0A= };=0A= =0A= /**=0A= * Determines whether or not the provided object is a string=0A= * @param {mixed} mixed The object being testing=0A= * @return {boolean} the result=0A= */=0A= CN.isString =3D function(mixed) {=0A= return typeof mixed =3D=3D=3D 'string';=0A= };=0A= =0A= /**=0A= * Determines whether or not the provided object is undefined=0A= * @param {mixed} mixed The object being testing=0A= * @return {boolean} the result=0A= */=0A= CN.isUndefined =3D function(mixed) {=0A= return typeof mixed =3D=3D=3D 'undefined';=0A= };=0A= =0A= =0A= /*=0A= SECTION: CN STATIC CLASSES=0A= */=0A= =0A= =0A= /**=0A= * @class CN URL Object=0A= * @description Contains methods for dealing with urls, query and hash = params=0A= * @public=0A= * @author Paul Bronshteyn=0A= * @author Eric Shepherd=0A= */=0A= CN.url =3D (function() {=0A= var=0A= /**=0A= * Path Cache Array.=0A= * @memberOf CN.url=0A= * @private=0A= * @type object=0A= */=0A= pathCache =3D [];=0A= =0A= /**=0A= * @scope CN.url=0A= */=0A= return {=0A= /**=0A= * Retrieves domain name from the url in the form of domain.com=0A= * @param {string} [url] Url to be parsed=0A= * @return {string} domain.com=0A= */=0A= domain : function(url) {=0A= var d =3D ((url) ? url.replace(/^https*:\/\/|(:|\/).*$/g, = '') : location.hostname).split('.'),=0A= dl =3D d.length;=0A= return d.slice(dl - 2, dl).join('.');=0A= },=0A= =0A= /**=0A= * Retrieve current site section=0A= * @return {string} Section name=0A= */=0A= section : function() {=0A= return ((location.pathname.split('/')[1] || = '').match(/^[^\.]*$/) || [''])[0];=0A= },=0A= =0A= /**=0A= * Returns url secure state=0A= * @return {boolean}=0A= */=0A= isSecure: function() {=0A= return location.protocol =3D=3D=3D 'https:';=0A= },=0A= =0A= /**=0A= * Get query params as object of key, value pairs or a value of = a param passed in.=0A= If query is not provided, location.search will be used.=0A= Result will be caches to queryCache variable for faster = access on next call.=0A= * @param {string} param Parameter to lookup=0A= * @param {string} query Query string to parse=0A= * @param {string} regex String key representing = regular expression in parsers object=0A= * @return {object|string}=0A= */=0A= params : function(param, query, regex) {=0A= var result =3D CN.utils.parseStr((query || location.search), = (regex || 'query'));=0A= return (param) ? result[param] || '' : result;=0A= },=0A= =0A= /**=0A= * Retrive current site path=0A= * @return {array} Path=0A= */=0A= path : function() {=0A= if (pathCache.length =3D=3D=3D 0) {=0A= pathCache =3D location.pathname.match(/([^\/]+)/g) || = ['']; // remove leading and trailing slash.=0A= }=0A= return pathCache;=0A= },=0A= =0A= /**=0A= * Retrieve the URL fragment identifier=0A= * @return {string|boolean} fragment id=0A= */=0A= getFragment : function() {=0A= return location.hash.substring(1) || false;=0A= },=0A= =0A= /**=0A= * Sets the fragment identifier string=0A= */=0A= setFragment : function(value) {=0A= location.hash =3D value || '';=0A= return this;=0A= }=0A= };=0A= })();=0A= =0A= =0A= /**=0A= * @class CN Utilities=0A= * @description Collection of utility helper functions=0A= * @public=0A= * @author Paul Bronshteyn=0A= * @author Eric Shepherd=0A= */=0A= CN.utils =3D (function() {=0A= var=0A= /**=0A= * Cache object.=0A= * @description Contains result objects for all parsed string = using parseStr function.=0A= * @memberOf CN.utils=0A= * @private=0A= * @type object=0A= */=0A= cache =3D {},=0A= =0A= /**=0A= * Regular expression parsers=0A= * @memberOf CN.utils=0A= * @private=0A= * @type object=0A= */=0A= parsers =3D {=0A= /**=0A= * Query, hash parser expression.=0A= * @description Will parse a url string in the form of = ?var=3Dvalue&var1=3Dvalue#hash=3Dvalue&hash1=3Dvalue1 into=0A= key value pair object.=0A= * @memberOf CN.utils=0A= * @private=0A= * @type RegEx expression=0A= */=0A= query : /([^?=3D&]+)(=3D([^&]*))?/g,=0A= =0A= /**=0A= * Hash parser expression.=0A= * @description Will parse url hash string in the form of=0A= ?var=3Dvalue&var1=3Dvalue into key value = pair object.=0A= * @memberOf CN.utils=0A= * @private=0A= * @type RegEx expression=0A= */=0A= hash : /([^#=3D&]+)(=3D([^&]*))?/g,=0A= =0A= /**=0A= * User cookie hash parser expression.=0A= * @description Will parse a cookie value in the form of = var=3Dvalue|var1=3Dvalue|var2=3Dvalue into=0A= key value pair object.=0A= * @memberOf CN.utils=0A= * @private=0A= * @type RegEx expression=0A= */=0A= usercookie : /([^=3D|]+)(=3D([^|]*))?/g=0A= },=0A= =0A= /**=0A= * Takes an argument and a goal length and prepends or appends=0A= padding character to reach that length.=0A= * @param {string} str A number or string representing a number=0A= * @param {integer} total A length to make the return string=0A= * @param {string} padding A number or string to pad with=0A= * @param {string} dir Direction to pad on=0A= * @return {string} Padded string=0A= */=0A= pad =3D function(str, total, padding, dir) {=0A= str =3D String(str || '');=0A= padding =3D String(padding || ' ');=0A= =0A= var strLen =3D str.length,=0A= padLen =3D padding.length;=0A= =0A= if (strLen >=3D total) {=0A= return str;=0A= }=0A= =0A= while (strLen < total) {=0A= str =3D (dir =3D=3D=3D 'left') ? padding + str : str + = padding;=0A= strLen +=3D padLen;=0A= }=0A= =0A= return str;=0A= };=0A= =0A= /**=0A= * @scope CN.utils=0A= */=0A= return {=0A= /**=0A= * Parse string using a regular expression and return object of = key, value pairs.=0A= * @param {string} query Query to be parsed=0A= * @param {string} regex String key representing regular = expression in parsers object=0A= * @return {object} Result object of key, value pairs=0A= */=0A= parseStr : function(str, regex) {=0A= if (cache[str+"_"+regex]) {=0A= return cache[str+"_"+regex];=0A= }=0A= cache[str+"_"+regex] =3D {};=0A= =0A= (str || '').replace(parsers[regex], function($0, $1, $2, $3) = {=0A= cache[str+"_"+regex][$1] =3D $3;=0A= });=0A= =0A= return cache[str+"_"+regex];=0A= },=0A= =0A= /**=0A= * Intval - Check if variable is an integer=0A= * @param {mixed} mixed The scalar value being = converted to an integer=0A= * @param {integer} [base] The base for the conversion, a = number (from 2 to 36)=0A= * that represents the numeral = system to be used (default is base 10)=0A= * @return {integer} Return a number (default is 0)=0A= */=0A= intval : function(mixed, base) {=0A= if (typeof mixed =3D=3D=3D 'boolean') {=0A= return (mixed) ? 1 : 0;=0A= } else if (typeof mixed =3D=3D=3D 'string') {=0A= mixed =3D parseInt(mixed * 1, (base || 10));=0A= return (isNaN(mixed) || !isFinite(mixed)) ? 0 : mixed;=0A= } else if (typeof mixed =3D=3D=3D 'number' && = isFinite(mixed)) {=0A= return Math.floor(mixed);=0A= }=0A= =0A= return 0;=0A= },=0A= =0A= /**=0A= * Trim string.=0A= * @description Remove leading and trailing space, tab and new = lines characters=0A= * @param {string} str String to be trimmed=0A= * @return {string} Trimmed string=0A= * @author Ariel Flesler=0A= * @see = http://flesler.blogspot.com/2008/11/fast-trim-function-for-javascript.htm= l=0A= */=0A= trim : function(str) {=0A= var start =3D -1,=0A= end =3D str.length;=0A= while (str.charCodeAt(--end) < 33); // TODO: fails jslint - = no while block=0A= while (++start < end && str.charCodeAt(start) < 33); // = TODO: fails jslint - no while block=0A= return str.slice(start, end + 1);=0A= },=0A= =0A= /**=0A= * Transliterate string.=0A= * @description converts extended ascii characters to normal = versions=0A= * @param {string} str String to be transliterated=0A= * @param {boolean} strip Whether or not to delete unknown = characters. default: true=0A= * @return {string} string=0A= * @author Daniel Holly Wells=0A= */=0A= transliterate : function(str, strip) {=0A= if (typeof str =3D=3D "undefined") {=0A= return "";=0A= }=0A= if (typeof strip =3D=3D "undefined") {=0A= strip =3D true;=0A= }=0A= =0A= str =3D escape(str)=0A= .replace(/%C[0-5]/g ,'A')=0A= .replace(/%C6/g ,'AE')=0A= .replace(/%C7/g ,'C')=0A= .replace(/%C[8-9|A-B]/g ,'E')=0A= .replace(/%C[C-F]/g ,'I')=0A= .replace(/%D[2-8]/g ,'O')=0A= .replace(/%D[9|A-C]/g ,'U')=0A= .replace(/%DD/g ,'Y')=0A= .replace(/%u0178/g ,'Y')=0A= .replace(/%u017D/g ,'Z')=0A= .replace(/%u0160/g ,'S')=0A= .replace(/%E[0-5]/g ,'a')=0A= .replace(/%E6/g ,'ae')=0A= .replace(/%E7/g ,'c')=0A= .replace(/%E[8-9|A-B]/g ,'e')=0A= .replace(/%E[C-F]/g ,'i')=0A= .replace(/%F[2-8]/g ,'o')=0A= .replace(/%F[9|A-C]/g ,'u')=0A= .replace(/%F[D-F]/g ,'y')=0A= .replace(/%u017E/g ,'z')=0A= .replace(/%u0161/g ,'s')=0A= .replace(/%u2014/g ,'-')=0A= .replace(/%u2013/g ,'-')=0A= .replace(/%u201[8-9]/g ,"'")=0A= .replace(/%u201A/g ,',')=0A= .replace(/%u2026/g ,'...')=0A= .replace(/%u201[C-D]/g ,'"')=0A= .replace(/%3F/g ,'?')=0A= .replace(/%21/g ,'!')=0A= .replace(/%26/g ,'&')=0A= .replace(/%25/g ,'%')=0A= .replace(/%24/g ,'$')=0A= .replace(/%5E/g ,'^')=0A= .replace(/%28/g ,'(')=0A= .replace(/%29/g ,')')=0A= .replace(/%7E/g ,'~')=0A= .replace(/%60/g ,'`')=0A= .replace(/%23/g ,'#')=0A= .replace(/%3D/g ,'=3D')=0A= .replace(/%2C/g ,',')=0A= .replace(/%3C/g ,'<')=0A= .replace(/%2E/g ,'>')=0A= .replace(/%7C/g ,'|')=0A= .replace(/%3A/g ,':')=0A= .replace(/%3B/g ,';')=0A= .replace(/%7D/g ,'}')=0A= .replace(/%7B/g ,'{')=0A= .replace(/%5B/g ,'[')=0A= .replace(/%5D/g ,']')=0A= .replace(/%20/g ,' ');=0A= if (strip) {=0A= str =3D = str.replace(/%u[0-9|A-F][0-9|A-F][0-9|A-F][0-9|A-F]/g, = '').replace(/%u[0-9|A-F][0-9|A-F]/g, '').replace(/%[0-9|A-F][0-9|A-F]/g, = '');=0A= } else {=0A= str =3D unescape(str);=0A= }=0A= return str;=0A= },=0A= =0A= /**=0A= * Takes an argument and a goal length and prepends=0A= padding character to reach that length.=0A= * @param {mixed} str A number or string representing a number=0A= * @param {integer} total A length to make the return string=0A= * @param {mixed} padding A number or string to pad with=0A= * @return {string} Padded string=0A= * @uses CN.utils.pad=0A= */=0A= padLeft : function(str, total, padding) {=0A= return pad(str, total, padding, 'left');=0A= },=0A= =0A= /**=0A= * Takes an argument and a goal length and appends=0A= padding character to reach that length.=0A= * @param {mixed} str A number or string representing a number=0A= * @param {integer} total A length to make the return string=0A= * @param {mixed} padding A number or string to pad with=0A= * @return {string} Padded string=0A= * @uses CN.utils.pad=0A= */=0A= padRight : function(str, total, padding) {=0A= return pad(str, total, padding, 'right');=0A= },=0A= =0A= /**=0A= * URI encode/decode a string=0A= * @private=0A= * @param {string} str String to encoded or decoded=0A= * @param {boolean} [encode] Will encode if set to true, = otherwise decode=0A= * @return {string} Encoded or decoded string=0A= */=0A= uriencdec : function(str, encode) {=0A= return (encode) ? encodeURIComponent(str) : = decodeURIComponent(str);=0A= },=0A= =0A= /**=0A= * Converts a property array to an object of values=0A= *=0A= * @param {array|object} arr An array of key/value = objects (or object as fallback)=0A= * @param {string} name The name to use (defaults to = 'name')=0A= * @param {string} value The value to use (defaults = to 'value')=0A= * @return {object} The resulting mapped object=0A= * @example = mapPropertyArray([{'name':'left','value':200},{'name':'top','value':300}]= );=0A= * returns this object:=0A= * { 'top' : 300, 'left' : 200 }=0A= */=0A= mapPropertyArray : function(arr, name, value) {=0A= name =3D name || 'name';=0A= value =3D value || 'value';=0A= =0A= var obj =3D {};=0A= =0A= if (jQuery.isArray(arr)) {=0A= jQuery.each(arr, function(i) {=0A= obj[arr[i][name]] =3D arr[i][value];=0A= });=0A= } else {=0A= obj[arr[name]] =3D arr[value];=0A= }=0A= =0A= return obj;=0A= }=0A= };=0A= })();=0A= =0A= =0A= /**=0A= * CN Debug Object=0A= * @requires jQuery=0A= * @class CN Debug Object=0A= * @public=0A= * @constructor=0A= * @author Paul Bronshteyn=0A= */=0A= CN.debug =3D (function() {=0A= var=0A= /**=0A= * Log Types (error, warn, info, user)=0A= * @memberOf CN.debug=0A= * @private=0A= * @type object=0A= */=0A= eType =3D {=0A= error : { f: 'error', msg: 'ERROR' },=0A= warn : { f: 'warn', msg: 'WARNING' },=0A= info : { f: 'info', msg: 'INFO' },=0A= user : { f: 'error', msg: 'USER' }=0A= },=0A= =0A= /**=0A= * Log Types (DEV, STAG, PREV, PROD)=0A= * @memberOf CN.debug=0A= * @private=0A= * @type object=0A= */=0A= eEnv =3D {=0A= DEV : 'Development',=0A= STAG : 'Staging',=0A= PREV : 'Preview',=0A= PROD : 'Production'=0A= },=0A= =0A= /**=0A= * Shows error information in console or alert=0A= * @memberOf CN.debug=0A= * @private=0A= * @param {string} type Error Type=0A= * @param {string} msg Error message=0A= * @param {array} [args] Error details=0A= */=0A= show =3D function(type, msg, args) {=0A= var t =3D eType[type] || eType.debug;=0A= =0A= if (CN.site.env =3D=3D=3D 'PROD' && !CN.site.debug) {=0A= return;=0A= }=0A= =0A= msg =3D msg || 'NO MSG';=0A= args =3D args || [];=0A= =0A= if (typeof console =3D=3D=3D 'object') {=0A= var func =3D console[t.f] || console.info;=0A= =0A= args.unshift(t.msg, msg);=0A= =0A= for (var i =3D 0; i < args.length - 1; i +=3D 2) {=0A= var part =3D args.splice(0, i + 1);=0A= part.push(' :: ');=0A= args =3D part.concat(args);=0A= }=0A= =0A= if (console.firebug) {=0A= func.apply(this, args);=0A= } else {=0A= console[t.f](args);=0A= }=0A= }=0A= };=0A= =0A= if (CN.url.params("debugOff") =3D=3D=3D 'true') {=0A= show =3D function() { return; };=0A= }=0A= =0A= /**=0A= * @scope CN.debug=0A= */=0A= return {=0A= /**=0A= * Log error messages=0A= * @param {string} msg Error message=0A= * @param {array} [args] Error details=0A= */=0A= error : function(msg, args) {=0A= show('error', msg, args);=0A= return this;=0A= },=0A= =0A= /**=0A= * Log warning messages=0A= * @param {string} msg Warning message=0A= * @param {array} [args] Warning details=0A= */=0A= warn : function(msg, args) {=0A= show('warn', msg, args);=0A= return this;=0A= },=0A= =0A= /**=0A= * Log info messages=0A= * @param {string} msg Info message=0A= * @param {array} [args] Info details=0A= */=0A= info : function(msg, args) {=0A= show('info', msg, args);=0A= return this;=0A= },=0A= =0A= /**=0A= * Log Try/Catch messages=0A= * @param {object} e Error object=0A= * @param {array} [args] Error details=0A= */=0A= user : function(e, args) {=0A= show('user', e.message, [args, e.fileName, e.lineNumber, = e.name, e.stack]);=0A= return this;=0A= },=0A= =0A= /**=0A= * Speed test your function=0A= * @param {function|string} f Function name or = it's string representation=0A= * @param {array} [args] Arguments that will = be passed to the function=0A= * @param {integer} [cycles] How many cycles to = run the test (default 10000)=0A= * @return {console|alert} Prints time in ms in = console in FF,Safari,Chrome and alert() on IE=0A= */=0A= speedtest : function(f, args, cycles) {=0A= var x, i;=0A= =0A= if (CN.isNumber(args)) {=0A= cycles =3D args;=0A= args =3D [];=0A= }=0A= =0A= if (!jQuery.isArray(args)) {=0A= args =3D [];=0A= }=0A= =0A= cycles =3D cycles || 10000;=0A= =0A= if (!jQuery.isFunction(f)) {=0A= CN.debug.error('Not a function', [f]);=0A= return this;=0A= }=0A= =0A= if (typeof console =3D=3D=3D 'object') {=0A= if (console.time) {=0A= x =3D 'timer' + Math.floor(Math.random() * 1000000);=0A= console.time(x);=0A= for (i =3D 0; i < cycles; i++) {=0A= f.apply(this, args);=0A= }=0A= console.timeEnd(x);=0A= } else {=0A= x =3D new Date() - 0;=0A= for (i =3D 0; i < cycles; i++) {=0A= f.apply(this, args);=0A= }=0A= x =3D new Date() - x;=0A= console.log(x);=0A= }=0A= } else {=0A= x =3D new Date() - 0;=0A= for (i =3D 0; i < cycles; i++) {=0A= f.apply(this, args);=0A= }=0A= x =3D new Date() - x;=0A= alert(x);=0A= }=0A= =0A= return this;=0A= },=0A= =0A= /**=0A= * CN Application Debug Object=0A= * @class CN Application Debug Object=0A= * @constructor=0A= * @public=0A= * @author Paul Bronshteyn=0A= */=0A= app : function() {=0A= var=0A= /**=0A= * Holds setLevel options=0A= * @memberOf CN.debug.app=0A= * @private=0A= * @type object=0A= */=0A= options =3D {},=0A= =0A= /**=0A= * Shows error information in console or alert.=0A= * @description Uses setLevel options to display or = supress error messages.=0A= Calls parent show() method if = setLevel options match=0A= * @memberOf CN.debug.app=0A= * @link CN.debug.show=0A= * @private=0A= * @param {string} type Error Type=0A= * @param {string} msg Error message=0A= * @param {array} [args] Error details=0A= */=0A= _show =3D function(type, msg, args) {=0A= if (options[CN.site.env][type]) {=0A= show(type, msg, args);=0A= }=0A= };=0A= =0A= /**=0A= * @scope CN.debug.app=0A= */=0A= return {=0A= /**=0A= * Set Levels of debuging messages=0A= * @param {array} type Log Types (error, warn, = info, debug, user)=0A= * @param {string} [env] Enviroment (DEV, STAG, = PREV, PROD)=0A= */=0A= setLevel : function(type, env) {=0A= if (!type || !jQuery.isArray(type) || type.length = =3D=3D=3D 0) {=0A= return this;=0A= }=0A= env =3D (env && env in eEnv) ? env : 'DEV';=0A= options[env] =3D type;=0A= return this;=0A= },=0A= =0A= /**=0A= * Get Levels of debuging messages=0A= * @param {string} [env] Enviroment (DEV, = STAG, PREV, PROD)=0A= * @return {object|array} If enviroment not = provided returns reporting object, if provided levels array=0A= */=0A= getLevel : function(env) {=0A= return (env) ? options[env] || '' : options;=0A= },=0A= =0A= /**=0A= * Log error messages=0A= * @link CN.debug.error=0A= * @param {string} msg Error message=0A= * @param {array} [args] Error details=0A= */=0A= error : function(msg, args) {=0A= _show('error', msg, args);=0A= return this;=0A= },=0A= =0A= /**=0A= * Log warning messages=0A= * @link CN.debug.warn=0A= * @param {string} msg Warning message=0A= * @param {array} [args] Warning details=0A= */=0A= warn : function(msg, args) {=0A= _show('warn', msg, args);=0A= return this;=0A= },=0A= =0A= /**=0A= * Log info messages=0A= * @link CN.debug.info=0A= * @param {string} msg Info message=0A= * @param {array} [args] Info details=0A= */=0A= info : function(msg, args) {=0A= _show('info', msg, args);=0A= return this;=0A= },=0A= =0A= /**=0A= * Log Try/Catch messages=0A= * @link CN.debug.user=0A= * @param {object} e Error object=0A= * @param {array} [args] Error details=0A= */=0A= user : function(e, args) {=0A= _show('user', e.message, [args, e.fileName, = e.lineNumber, e.name, e.stack]);=0A= return this;=0A= }=0A= };=0A= }=0A= };=0A= })();=0A= =0A= =0A= /**=0A= * Intercept window errors, log them quietly.=0A= * @description The error will be intercepted on all enviroments = and suppresed=0A= on production enviroment (this should be optional).=0A= * @name onerror=0A= * @event=0A= * @param {string} msg Error message=0A= * @param {string} url URL of the error=0A= * @param {integer} line Line number=0A= * @return {boolean}=0A= */=0A= if (CN.url.params("debugOff") !=3D=3D 'true') {=0A= window.onerror =3D function(msg, url, line) {=0A= CN.debug.error(msg, [url, line]);=0A= return (CN.site.env =3D=3D=3D 'PROD') ? true : false;=0A= };=0A= }=0A= =0A= =0A= /**=0A= * CN Site Object=0A= * @class CN Site Object=0A= * @public=0A= * @author Paul Bronshteyn=0A= */=0A= CN.site =3D (function() {=0A= /** @scope CN.site */=0A= return {=0A= /**=0A= * Site code=0A= * @type string=0A= */=0A= code : '',=0A= =0A= /**=0A= * Site title=0A= * @type string=0A= */=0A= title : '',=0A= =0A= /**=0A= * Site name - Lower cased title=0A= * @type string=0A= */=0A= name : '',=0A= =0A= /**=0A= * Site alias - Upper case title=0A= * @type string=0A= */=0A= alias: '',=0A= =0A= /**=0A= * Site environment=0A= * @type string=0A= */=0A= env : '',=0A= =0A= /**=0A= * Site CND Request=0A= * @type boolean=0A= */=0A= cnd: false,=0A= =0A= /**=0A= * Site debug.=0A= * @description If set will console debug messages in any = enviroment.=0A= Use query parameter magdebug to toggle debuger.=0A= * @type boolean=0A= */=0A= debug : !!CN.url.params('magdebug') && !this.cnd,=0A= =0A= /**=0A= * Site no ads.=0A= * @description If set will disable ad calls on the page.=0A= * @type boolean=0A= */=0A= noads : !!CN.url.params('magnoads') && !this.cnd,=0A= =0A= /**=0A= * Test ads.=0A= * @description If not empty we will use this as dart site and = zone=0A= * @type String=0A= */=0A= testads : CN.url.params('dartAdOverride') && !this.cnd,=0A= =0A= /**=0A= * Initiate site specific object, sets document.domain=0A= * @param {object} settings S=0A= * @type function=0A= */=0A= init : function(settings) {=0A= settings =3D settings || {};=0A= for (var s in settings) {=0A= if (settings.hasOwnProperty(s)) {=0A= this[s] =3D settings[s];=0A= }=0A= }=0A= =0A= /**=0A= * @name CN.site#dynamicName=0A= * @description Dynamically generated site object based on = the name of the site.=0A= All site specific code will be in this = object.=0A= * @memberOf CN.site=0A= * @type object=0A= * @example CN.site.glamour=0A= */=0A= this[this.name] =3D {};=0A= =0A= this.domain =3D CN.url.domain();=0A= =0A= try {=0A= if (this.domain) {=0A= document.domain =3D this.domain;=0A= }=0A= CN.debug.info('Document domain was set', [this.domain]);=0A= } catch(e) {=0A= CN.debug.error(e);=0A= }=0A= =0A= CN.debug.info('CN Started', [this.code, this.title, = this.env, this.name, this.alias, this.cnd, this.debug, this.noads]);=0A= =0A= return this;=0A= }=0A= };=0A= })();=0A= =0A= =0A= /************************************************************************= *********************************************=0A= The above namespaces need to be in the order listed=0A= All namespaces below will follow in alphabetical order=0A= *************************************************************************= ********************************************/=0A= =0A= /**=0A= * @class CN callwhen=0A= * Method for evaluating call[before || back] events.=0A= * @description Ensures, parses, and triggers all call[before || = back] events pass=0A= * in object fincs.=0A= * @public=0A= * @author Russell Munson=0A= * @example funcs=3D{=0A= callbefore : [{=0A= func: function(){ dosomething();}, //Function to be = executed=0A= params: ["string",{object}], //Params to be = passed to function=0A= scope : CN.dart //Scope to = execute function in=0A= }],=0A= callbefore : [{=0A= func: function(){ dosomething();},=0A= params: ["string",{object}],=0A= scope : CN.dart=0A= }]=0A= }=0A= */=0A= CN.callwhen =3D {=0A= =0A= /* Add function to the callbefore/callback queue=0A= *=0A= * @param {object} queue State to queue "before||after".=0A= * @param {object} func) Object containing the function, params, = and scopes.=0A= * ex: { func: function(e,str){return str;},=0A= * params:["function running"],=0A= * scope : window}=0A= * @param {object} [queue] CN.callwhen object to add function to, = or {}.=0A= */=0A= add : function(state,funcO,queue){=0A= if(!state || !funcO || !funcO["func"]) {return;}=0A= queue=3Dqueue || {},=0A= state =3D (state=3D=3D=3D"after" ? "callback" : "callbefore"),=0A= funcO=3D {=0A= func : funcO["func"],=0A= params : funcO["params"] || [],=0A= scope : funcO["scope"] || window=0A= };=0A= =0A= if(jQuery.isFunction(funcO.func) && CN.isString(state)){=0A= queue[state] =3D queue[state] || [],=0A= queue[state].push(funcO);=0A= }=0A= return queue;=0A= },=0A= =0A= /* Execute the functions in all defined states function=0A= * @param {object} funcs Object containing callwhen events=0A= * @param {dom el} [target] Optional DOM element to bind event to, = which defaults to window.=0A= * @param {string} [state] Optional state to execute = "before||after||both". Defaults is both.=0A= */=0A= run : function(funcs,target,state){=0A= if (!CN.isObject(funcs)){=0A= return;=0A= }=0A= if (CN.isString(target)){=0A= state=3Dtarget,=0A= target=3Dwindow;=0A= }=0A= var funcThis,=0A= funcObj;=0A= /* Run through the callbefore queue */=0A= if ((state=3D=3D=3D"before" || !state) && = jQuery.isArray(funcs.callbefore)){=0A= for (var i=3D0,len=3Dfuncs.callbefore.length; i 3 ? 'long' : 'short';=0A= return CN.date.getDayName(d.getDay(), opt);=0A= },=0A= =0A= // a - AM/PM marker=0A= a : function(d, number) {=0A= return d.getHours() < 12 ? 'AM' : 'PM';=0A= },=0A= =0A= // H - Hour in day (0-23)=0A= H : function(d, number) {=0A= return zeroPad(d.getHours(), number);=0A= },=0A= =0A= // k - Hour in day (1-24)=0A= k : function(d, number) {=0A= return zeroPad(d.getHours() + 1, number);=0A= },=0A= =0A= // K - Hour in am/pm (0-11)=0A= K : function(d, number) {=0A= var hours =3D d.getHours();=0A= return zeroPad(hours - 12 >=3D 0 ? hours - 12 : hours, = number);=0A= },=0A= =0A= // h - Hour in am/pm (1-12)=0A= h : function(d, number) {=0A= var hours =3D d.getHours();=0A= return zeroPad((hours - 13 >=3D 0 ? hours - 12 : hours), = number);=0A= },=0A= =0A= // m - Minute in hour=0A= m : function(d, number) {=0A= return zeroPad(d.getMinutes(), number);=0A= },=0A= =0A= // s - Second in minute=0A= s : function(d, number) {=0A= return zeroPad(d.getSeconds(), number);=0A= },=0A= // S - Millisecond=0A= S : function(d, number) {=0A= return zeroPad(d.getMilliseconds(), number);=0A= }=0A= =0A= // z - Time zone (general) // Not Supported=0A= // Z - Time Zone (RFC 822 e.g. -0800) // Not Supported=0A= };=0A= =0A= =0A= /**=0A= * @scope CN.date=0A= */=0A= return {=0A= =0A= /**=0A= * Determines whether or not the provided year is a leap year=0A= * @param {number} year The year being tested=0A= * @return {boolean} Whether or not the year is a = leap year=0A= */=0A= isLeapYear : function(year) {=0A= return !!(year && (year % 4 =3D=3D=3D 0) && (year % 100 = !=3D=3D 0 || year % 400 =3D=3D=3D 0));=0A= },=0A= =0A= /**=0A= * Get the number of days in the given month=0A= * @param {number} month Month number (0-11) where = January is 0=0A= * @param {number} year The year=0A= * @return {number} The number of days in the month=0A= */=0A= getDaysInMonth : function(month, year) {=0A= return (month =3D=3D=3D 1 && this.isLeapYear(year)) ? 29 : = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month] || 0;=0A= },=0A= =0A= /**=0A= * Get month name.=0A= * @description Returns month name for specified month index and = language, the language will=0A= default to English if not provided.=0A= * @param {integer} month Month number (0-11) where = January is 0, February is 1 and so on=0A= * @param {object} options Language, short or long form=0A= * @option {string} lang ISO 639-1 language code = (default "en")=0A= * @option {string} form Type of form to use (default = "long")=0A= * @return {string} Month name or Empty=0A= * @link = http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes=0A= */=0A= getMonthName : function(month, options) {=0A= options =3D options || {};=0A= return CN.date.getMonthNames(options)[month] || '';=0A= },=0A= =0A= /**=0A= * Get month names array.=0A= * @description Returns array of month names for specified = language=0A= * @param {string} lang ISO 639-1 language code=0A= * @return {array} Month names or Empty=0A= * @link = http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes=0A= */=0A= getMonthNames : function(options) {=0A= options =3D options || {};=0A= return months[options.lang || 'en']['_' + (options.form || = 'long')] || [];=0A= },=0A= =0A= /**=0A= * Get day name.=0A= * @description Returns day name for specified month index and = language; the langauge will=0A= default to English if not provided.=0A= * @param {number} day Day number (0-6) where = Sunday is 0=0A= * @param {object} options Language, short or long form=0A= * @option {string} lang ISO 639-1 language code = (default "en")=0A= * @option {string} form Type of form to use (default = "long")=0A= * @return {string} Day name or empty=0A= * @link = http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes=0A= */=0A= getDayName : function(day, options) {=0A= options =3D options || {};=0A= return CN.date.getDayNames(options)[((day =3D=3D=3D 7) ? 0 : = day)] || '';=0A= },=0A= =0A= /**=0A= * Get day of the week names array.=0A= * @description Returns array of day of week names for specified = language=0A= * @param {object} [options] Language and name options=0A= * @option {string} lang ISO 639-1 language code (default "en")=0A= * @option {string} Type of form to use (default "long")=0A= * @return {array} Month names or Empty array=0A= * @link http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes=0A= */=0A= getDayNames : function(options){=0A= options =3D options || {};=0A= return days[options.lang || 'en']['_' + (options.form || = 'long')] || [];=0A= },=0A= =0A= /**=0A= * Format a JavaScript date to a readable format=0A= * For now, this is only a format method. It can be expanded to = parse a string into a date later.=0A= * @description Returns a formatted date=0A= * @param {object} d A JavaScript date object=0A= * @param {string} pattern A formatting string, per Java's = SimpleDateFormat specification=0A= * @return {string} A formatted date string=0A= * @link = http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html=0A= */=0A= format : function(d, pattern) {=0A= // For now, only accepting date objects.=0A= if (!CN.isDate(d)) {=0A= CN.debug.warn('date.format() method requires a = JavaScript date object to be passed');=0A= return d;=0A= }=0A= =0A= var str =3D '',=0A= p =3D function(q) { // Utility function to push into the = string we will be returning=0A= str +=3D q;=0A= },=0A= i,=0A= il,=0A= current =3D '',=0A= flagLength =3D 1,=0A= currentToEnd,=0A= subPattern;=0A= /// END VAR BLOCK=0A= =0A= if (CN.isString(pattern)) {=0A= =0A= pattern =3D pattern.split(''); // pattern is now an = array since IE can't do String[n]=0A= =0A= for (i =3D 0, il =3D pattern.length; i < il; i++) {=0A= current =3D pattern[i];=0A= =0A= // If there's a flag, call it, else parse = literally while accounting for single quotes=0A= if (formatFlags[current]) {=0A= // Keeps increasing flagLength if = letters are repeated and match a flag=0A= while (pattern[i + flagLength] =3D=3D=3D = pattern[i]) {=0A= flagLength +=3D 1;=0A= }=0A= // Calls the method for the given flag=0A= p(formatFlags[current](d, flagLength));=0A= =0A= } else {=0A= // If we get a single quote=0A= if (pattern[i] =3D=3D=3D '\'') {=0A= if (pattern[i + 1] !=3D=3D '\'') {=0A= currentToEnd =3D pattern.slice(i + 1, = pattern.length);=0A= subPattern =3D currentToEnd.slice(0, = currentToEnd.indexOf("'"));=0A= p(subPattern.join(''));=0A= flagLength +=3D (subPattern.length + 1);=0A= } else {=0A= p("'");=0A= flagLength +=3D 1;=0A= }=0A= =0A= } else {=0A= p(pattern.slice(i, i + 1).join(''));=0A= }=0A= }=0A= =0A= i +=3D (flagLength - 1); // jump i ahead by the = number of letters=0A= current =3D ''; // reset=0A= flagLength =3D 1; // reset=0A= }=0A= } else { // Fallback to generic toString() representation if = no format was passed in=0A= str =3D d.toString();=0A= }=0A= =0A= return str;=0A= },=0A= =0A= /**=0A= * Converts an ISO-8601 date (W3C subset) into a JavaScript date=0A= * http://www.w3.org/TR/NOTE-datetime=0A= *=0A= * @param {String} d A date string in ISO-8601 format=0A= * @return {Date} A JavaScript Date object=0A= */=0A= isoToDate : function(isoDate) {=0A= var regex =3D = /([0-9]{4})(-([0-9]{2})(-([0-9]{2})(T([0-9]{2}):([0-9]{2})(:([0-9]{2})(\.= ([0-9]+))?)?(Z|(([-+])([0-9]{2}):([0-9]{2})))?)?)?)?/, // TODO: fails = jslint - unescaped - at 116=0A= offset =3D 0,=0A= date =3D isoDate.match(regex),=0A= d =3D new Date(date[1], 0, 1);=0A= =0A= if (date[3]) {=0A= d.setMonth(date[3] - 1);=0A= }=0A= if (date[5]) {=0A= d.setDate(date[5]);=0A= }=0A= if (date[7]) {=0A= d.setHours(date[7]);=0A= }=0A= if (date[8]) {=0A= d.setMinutes(date[8]);=0A= }=0A= if (date[10]) {=0A= d.setSeconds(date[10]);=0A= }=0A= if (date[12]) {=0A= d.setMilliseconds(Number('0.' + date[12]) * 1000);=0A= }=0A= if (date[14]) {=0A= offset =3D (Number(date[16]) * 60) + Number(date[17]);=0A= offset =3D offset * ((date[15] =3D=3D '-') ? 1 : -1);=0A= }=0A= offset =3D offset - d.getTimezoneOffset();=0A= d.setTime(Number(Number(d) + (offset * 60 * 1000)));=0A= =0A= return d;=0A= },=0A= =0A= /**=0A= * Converts a Teamsite date into the standard ISO-8601 format=0A= * Using timezone offset that should at least give us the right = day when the teamsite time is set to midnight.=0A= *=0A= * @param {String} iwDate A date in InterWoven Teamsite = format (20081204 11:23:34)=0A= * @return {String} A date in ISO-8601 format=0A= */=0A= convertIwDateToIso : function(iwDate) {=0A= var isoDate =3D '';=0A= if (CN.isString(iwDate)) {=0A= isoDate =3D iwDate.substr(0, 4) + '-' + = iwDate.substr(4,2) + '-' + iwDate.substr(6, 2) + 'T' + iwDate.substr(9, = 8) + '-05:00';=0A= }=0A= return isoDate || '';=0A= }=0A= };=0A= })();=0A= =0A= =0A= /**=0A= * @class CN Frame=0A= * @description Contains methods for dealing with iFrames.=0A= * @public=0A= * @requires jQuery=0A= * @author Paul Bronshteyn=0A= */=0A= CN.frame =3D (function($) {=0A= var=0A= /**=0A= * Resize iFrame height to fit content on load.=0A= * @description This is a private function that is triggered by = the onload=0A= event of the iFrame. This will also be triggered = by the=0A= public resize method.=0A= * @memberOf CN.frame=0A= * @private=0A= * @event=0A= */=0A= _resize =3D function(e) {=0A= var frame =3D (e.data && e.data.use) ? e.data.use : this;=0A= =0A= try {=0A= var body =3D frame.contentWindow.document.body;=0A= } catch(e) {=0A= return CN.debug.user(e, [frame, frame.id]);=0A= }=0A= =0A= if (typeof e.data =3D=3D=3D 'undefined') {=0A= $('iframe', body).bind('load', { use: frame }, _resize);=0A= }=0A= =0A= if (!$('.textAd', body).length || !$('#adHolder a', = body).eq(0).text()) {=0A= $('#adHolder', body).css({ 'font-size': 0, = 'line-height': 0 });=0A= }=0A= =0A= $(frame).css({=0A= border : 'none',=0A= margin : 0,=0A= height : $(body).css({ overflow: 'hidden', margin: 0, = border: 0 }).outerHeight()=0A= });=0A= };=0A= =0A= /**=0A= * @scope CN.frame=0A= */=0A= return {=0A= /**=0A= * Bind iFframe resize on iFrame load.=0A= * @description Binds the load event to the element passed = in.=0A= * @param {string} frame ID or class of the = iFrame in jQuery excepted format.=0A= * @uses CN.frame._resize=0A= *=0A= * @example=0A= Using element id:=0A= CN.frame.bindResize('#frame_id');=0A= =0A= Using element class:=0A= CN.frame.bindResize('.frame_class');=0A= =0A= Using multiple and combinations:=0A= CN.frame.bindResize('#frame_id, .frame_class');=0A= */=0A= bindResize : function(frame) {=0A= $(frame).bind('load', _resize);=0A= return this;=0A= },=0A= =0A= /**=0A= * Refresh iFrame=0A= * @description Refreshes an iFrame with the current url or with = the url if the=0A= param (if provided), resizes the frame onload to = fit content.=0A= * @param {string,array} frames Array, CSV or = space-delimitted list of iframe=0A= classes or ids or = mixed=0A= * @param {string} [url] Url for the = iFrame(s) to be refreshed with, defaults to=0A= refreshing current = iFrame url=0A= * @param {boolean} [resize] Resize iFrame after = refresh, default is true=0A= * @uses CN.frame._resize=0A= *=0A= * @example=0A= Refresh iFrame:=0A= CN.frame.refresh('#frame_id');=0A= =0A= Refresh multiple iFrames (comma-separated):=0A= CN.frame.refresh('#frame_id,.frame1,#frame2');=0A= =0A= Refresh multiple iFrames (space-separated):=0A= CN.frame.refresh('#frame_id .frame1 #frame2');=0A= =0A= Refresh iFrame with url:=0A= CN.frame.refresh('#frame_id', 'http://www.example.com');=0A= =0A= Refresh iFrame with url and do not resize:=0A= CN.frame.refresh('#frame_id', 'http://www.example.com', = false);=0A= */=0A= refresh : function(frames, url, resize, funcs) {=0A= frames =3D (CN.isString(frames)) ? frames.split(/,|\s+/) : = ($.isArray(frames)) ? frames : [];=0A= // frames array empty? exit=0A= if (!frames.length) {=0A= return this;=0A= }=0A= =0A= // shift arguments if resize was ommited=0A= if(CN.isObject(resize)){=0A= funcs=3Dresize,resize=3Dtrue;=0A= }=0A= =0A= // shift arguments if url and resize were ommited=0A= if(CN.isObject(url)){=0A= funcs=3Durl,url=3D'';=0A= }=0A= =0A= // shift arguments if url was ommited=0A= if (CN.isBoolean(url)) {=0A= resize =3D url;=0A= url =3D '';=0A= }=0A= =0A= // NOTE: =3D=3D is intentional and checks for values that = are null or undefined=0A= resize =3D (resize =3D=3D null) ? true : resize;=0A= =0A= // update each frame=0A= $.each(frames, function(i, v) {=0A= if (!/\S/.test(v)) {=0A= return true;=0A= }=0A= =0A= var frame =3D $(v);=0A= if (!frame.length) {=0A= return true;=0A= }=0A= =0A= // bind load event=0A= if (resize) {=0A= frame.bind('load', _resize);=0A= }=0A= =0A= //execute callbefore, and bind callafter=0A= CN.callwhen.run(funcs,frame);=0A= =0A= url =3D url || frame[0].src;=0A= =0A= // load url provided or refresh=0A= // adblock extension throws error, catch it, kill it=0A= try {=0A= frame[0].contentWindow.location.replace(url);=0A= CN.debug.info('CN Frame Refresh', [v, url, resize]);=0A= } catch(e) {=0A= CN.debug.user(e, [v, url, resize]);=0A= }=0A= });=0A= =0A= return this;=0A= },=0A= =0A= /**=0A= * Resize iFrame height to fit content.=0A= * @description Binds the load event to the element passed = in and then triggers it.=0A= * @param {string} frame ID or class of the = iFrame in jQuery excepted format.=0A= * @uses CN.frame._resize=0A= *=0A= * @example=0A= Using element id:=0A= CN.frame.resize('#frame_id');=0A= =0A= Using element class:=0A= CN.frame.resize('.frame_class');=0A= =0A= Using multiple and combinations:=0A= CN.frame.resize('#frame_id, .frame_class');=0A= */=0A= resize : function(frame) {=0A= $(frame).bind('load', _resize).triggerHandler('load');=0A= return this;=0A= }=0A= };=0A= })(jQuery);=0A= =0A= /**=0A= * @class CN Internal Object=0A= * @description Handles functionality for non-production environments.=0A= * @public=0A= * @author Eric Shepherd=0A= */=0A= CN.internal =3D (function() {=0A= return {=0A= getTeamsiteServer : function() {=0A= return 'deprecated';=0A= }=0A= };=0A= })();=0A= =0A= =0A= /**=0A= * @class CN.media=0A= * @description Methods to handle various types of media=0A= * @public=0A= * @author Eric Shepherd=0A= */=0A= CN.media =3D (function($) {=0A= =0A= var embedSwf,=0A= embedSwfWithTimeout;=0A= =0A= /**=0A= * Makes a call to swfobject to embed a swf movie with the given=0A= * parameters.=0A= *=0A= * @method embedSwf=0A= * @private=0A= * @param args {Array} An array of params for the swfobject call=0A= */=0A= embedSwf =3D function(args) {=0A= swfobject.embedSWF.apply(window, args)=0A= };=0A= =0A= /**=0A= * Sets a timer to allow dynamically loaded swfobject.js to be parsed=0A= * before running code dependent on it.=0A= *=0A= * @method embedSwfWithTimeout=0A= * @private=0A= * @param args {Array} An array of params for the swfobject call=0A= */=0A= embedSwfWithTimeout =3D function(args) {=0A= setTimeout(function() {=0A= embedSwf(args)=0A= }, 200);=0A= };=0A= =0A= /**=0A= * @scope CN.media=0A= */=0A= return {=0A= =0A= /**=0A= * Embeds a Flash movie using swfobject.js, loading it if it's = not=0A= * already included on the page.=0A= *=0A= * @public=0A= * @method swf=0A= * @param args {Array} An array of params for the swfobject call=0A= */=0A= swf : function(args) {=0A= if (typeof swfobject =3D=3D=3D 'undefined') {=0A= CN.debug.info('Dynamically loading swfobject.js - = consider placing the script call in the site JSP if load time/FOUC is an = issue.');=0A= $.getScript('/js/cn-presentation/swfobject.js', = function() {=0A= embedSwfWithTimeout(args);=0A= });=0A= } else {=0A= CN.debug.info('swfobject.js already loaded or being = loaded on page, using it to render mediaItem');=0A= embedSwf(args);=0A= }=0A= }=0A= };=0A= })(jQuery);=0A= =0A= =0A= /**=0A= * @class CN.modules=0A= * @description Holds page module APIs and provides methods for = interacting with modules=0A= * @public=0A= * @author Eric Shepherd=0A= */=0A= CN.modules =3D (function() {=0A= CN.customEvents =3D CN.customEvents || {};=0A= CN.customEvents.moduleLoaded =3D {};=0A= =0A= var register,=0A= loaded =3D [];=0A= =0A= register =3D function(moduleName) {=0A= CN.modules.loaded.push(moduleName);=0A= jQuery(window).trigger('CN.customEvents.moduleLoaded.' + = moduleName);=0A= };=0A= =0A= return {=0A= register : register,=0A= loaded : loaded=0A= }=0A= })();=0A= =0A= =0A= /**=0A= * @class CN.page=0A= * @description Page level information=0A= * @public=0A= * @author Paul Bronshteyn=0A= * @author Eric Shepherd=0A= */=0A= CN.page =3D (function() {=0A= return {=0A= config : {},=0A= =0A= /**=0A= * The section of the site we are in=0A= * @memberOf CN.page=0A= * @public=0A= * @return {String} The current site section, or empty=0A= */=0A= section : function() {=0A= return ((location.pathname.split('/')[1] || = '').match(/^[^\.]*$/) || [''])[0];=0A= },=0A= =0A= /**=0A= * The subsection of the site we are in, if applicable=0A= * @memberOf CN.page=0A= * @public=0A= * @return {String} The subsection of the site, or empty=0A= */=0A= subsection : function() {=0A= return ((location.pathname.split('/')[2] || = '').match(/^[^\.|(\d{4})]*$/) || [''])[0];=0A= },=0A= =0A= /**=0A= * The content slug of the current page, if applicable=0A= * @memberOf CN.page=0A= * @public=0A= * @return {String} The current page's slug, or empty=0A= */=0A= slug : function() {=0A= return = ((location.pathname.split('/')[location.pathname.split('/').length-1] || = '').match(/^[^\.]*$/) || [''])[0];=0A= }=0A= };=0A= })();=0A= =0A= =0A= /**=0A= * @description Reg specific methods. If your function is used on=0A= * registration, and it doesn't fit anywhere else... = then it belongs here.=0A= * @class CN Reg=0A= * @public=0A= * @author Paul Bronshteyn=0A= * @author Russell Munson=0A= */=0A= CN.reg =3D (function($) {=0A= =0A= var form =3D {},=0A= reqClass =3D "rqrd";=0A= =0A= function formBindings() {=0A= form.bind('submit', function() {=0A= var bdayfield =3D $('#bdayfield', this);=0A= if (bdayfield.length && $('#birthYear', this).val() !=3D = 'YYYY') {=0A= bdayfield.val([$('#birthMonth', this).val(), = $('#birthDay', this).val(), $('#birthYear', this).val()].join('/'));=0A= }=0A= });=0A= }=0A= =0A= return {=0A= =0A= /**=0A= * Set the form context for the usage in CN.reg=0A= *=0A= * @public=0A= * @param {String} fid Takes jQuery formatted selector pointing = to form=0A= * @returns {Object} Returns CN.reg for easy command chaining.=0A= */=0A= setForm : function(fid){=0A= form =3D $(fid);=0A= formBindings();=0A= return this;=0A= },=0A= =0A= /**=0A= * Return for jQuery object containing the form currently in = context=0A= *=0A= * @public=0A= * @returns {Object} jQuery object conaining form currently in = context=0A= */=0A= getForm : function(){=0A= return form;=0A= },=0A= =0A= /**=0A= * Concatenates values of separate birthday fields with a '/' = deliminator=0A= *=0A= * @public=0A= */=0A= setBirthday : function() {=0A= var bdayfield =3D $('#bdayfield', form);=0A= if (bdayfield.length) {=0A= var fields =3D bdayfield.val().split('/');=0A= $('#birthMonth', form).val(fields[0]);=0A= $('#birthDay', form).val(fields[1]);=0A= $('#birthYear', form).val(fields[2]);=0A= }=0A= },=0A= =0A= /**=0A= * Add css class indicator for required fields. Assumes=0A= * standard regForm markup, with parent .row containing class = defined in reqClass=0A= *=0A= * @public=0A= */=0A= setReq : function(el) {=0A= $(el).parents('.row').addClass(reqClass);=0A= },=0A= =0A= /**=0A= * Remove css class indicator for required fields. Assumes=0A= * standard regForm markup, with parent .row containing class = defined in reqClass=0A= *=0A= * @public=0A= */=0A= removeReq : function(el) {=0A= $(el).parents('.row').removeClass(reqClass);=0A= },=0A= =0A= /**=0A= * Return class name for marking required fields in a reg form=0A= *=0A= * @public=0A= */=0A= getReqClass : function() {=0A= return reqClass;=0A= }=0A= };=0A= })(jQuery);=0A= =0A= =0A= /**=0A= * @class CN Search=0A= * @public=0A= * @author Paul Bronshteyn=0A= */=0A= CN.search =3D (function() {=0A= var=0A= /**=0A= * RegEx checks to validate search string=0A= * @memberOf CN.search=0A= * @private=0A= */=0A= checks =3D {=0A= alphanum : /[^0-9a-zA-Z\s]/g,=0A= script : //g=0A= };=0A= =0A= /**=0A= * @scope CN.search=0A= */=0A= return {=0A= /**=0A= * Generate search path.=0A= * @description Sanitizes the string first, replaces all = spaces with -=0A= * @param {string} keywords Search keywords=0A= * @return {string} Sanitized search path=0A= * @uses CN.search.sanitize=0A= */=0A= path : function(keywords) {=0A= return this.sanitize(keywords).replace(/\s+/g, '-');=0A= },=0A= =0A= /**=0A= * Sanitize query string.=0A= * @description Remove <script/> tags to prevent XSS = and all non-alpha numeric characters.=0A= * @param {string} keywords Search keywords=0A= * @return {string} Sanitized keywords=0A= * @uses CN.utils.trim=0A= */=0A= sanitize : function(keywords) {=0A= return CN.utils.trim(keywords || '').replace(checks.script, = '').replace(checks.alphanum, '');=0A= }=0A= };=0A= })();=0A= =0A= =0A= /**=0A= * @class CN User=0A= * @public=0A= * @author Paul Bronshteyn=0A= */=0A= CN.user =3D (function() {=0A= =0A= /**=0A= * @scope CN.user=0A= */=0A= return {=0A= =0A= /**=0A= * Determine if the user is logged in?=0A= * @return {boolean}=0A= * @uses CN.cookie.get=0A= */=0A= isLoggedIn : function() {=0A= return CN.cookie.get('amg_user_record') && = CN.cookie.get('amg_user');=0A= },=0A= =0A= /**=0A= * Determine if user has confirmed their registration=0A= * @return {boolean}=0A= * @uses CN.utils.parseStr=0A= * @uses CN.cookie.get=0A= */=0A= isConfirmed : function() {=0A= return CN.utils.parseStr(CN.cookie.get('amg_user_record'), = 'usercookie').conf =3D=3D=3D 'true';=0A= },=0A= =0A= /**=0A= * Get logged in username=0A= * @return {string} Username=0A= * @uses CN.utils.parseStr=0A= * @uses CN.cookie.get=0A= */=0A= username : function() {=0A= return CN.utils.parseStr(CN.cookie.get('amg_user_record'), = 'usercookie').username || '';=0A= },=0A= =0A= /**=0A= * Get user id=0A= * @return {string} id=0A= * @uses CN.utils.parseStr=0A= * @uses CN.cookie.get=0A= */=0A= userid : function() {=0A= return CN.utils.parseStr(CN.cookie.get('amg_user_record'), = 'usercookie').uid || 0;=0A= }=0A= };=0A= })();=0A= =0A= =0A= /**=0A= * @description Methods invloving geo-location, states, provinces, = countries... anything=0A= * world oriented=0A= * @class CN World=0A= * @public=0A= * @author Paul Bronshteyn=0A= * @author Russell Munson=0A= */=0A= CN.world =3D (function($) {=0A= =0A= var=0A= states =3D {=0A= msg : 'Select your',=0A= =0A= us : {=0A= desc: 'state',=0A= code: = 'AL,AK,AZ,AR,CA,CO,CT,DE,DC,FL,GA,HI,ID,IL,IN,IA,KS,KY,LA,ME,MD,MA,MI,MN,= MS,MO,MT,NE,NV,NH,NJ,NM,NY,NC,ND,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VT,VA,WA,W= V,WI,WY,AE,AA,AP'.split(','),=0A= name: = 'Alabama,Alaska,Arizona,Arkansas,California,Colorado,Connecticut,Delaware= ,District of = Columbia,Florida,Georgia,Hawaii,Idaho,Illinois,Indiana,Iowa,Kansas,Kentuc= ky,Louisiana,Maine,Maryland,Massachusetts,Michigan,Minnesota,Mississippi,= Missouri,Montana,Nebraska,Nevada,New Hampshire,New Jersey,New Mexico,New = York,North Carolina,North Dakota,Ohio,Oklahoma,Oregon,Pennsylvania,Rhode = Island,South Carolina,South = Dakota,Tennessee,Texas,Utah,Vermont,Virginia,Washington,West = Virginia,Wisconsin,Wyoming,Armed Forces Europe,Armed Forces = Americas,Armed Forces Pacific'.split(',')=0A= },=0A= =0A= ca : {=0A= desc: 'province',=0A= code: = 'AB,BC,MB,NB,NL,NT,NS,NU,ON,PE,QC,SK,YT'.split(','),=0A= name: 'Alberta,British Columbia,Manitoba,New = Brunswick,Newfoundland and Labrador,Northwest Territories,Nova = Scotia,Nunavuta,Ontario,Prince Edward = Island,Quebec,Saskatchewan,Yukon'.split(',')=0A= }=0A= },=0A= =0A= /**=0A= * Defaults the form context for the usage in CN.world to the = form currently=0A= * in context for CN.reg.=0A= *=0A= * @protected=0A= * @returns {Object} Returns jQuery object containing a form=0A= * @see CN.reg.getForm=0A= */=0A= form =3D function() {=0A= return CN.reg.getForm();=0A= };=0A= =0A= return {=0A= =0A= /**=0A= * Set the form context for the usage in CN.reg=0A= *=0A= * @public=0A= * @param {String} fid Takes jQuery formatted selector pointing = to form=0A= * @returns {Object} Returns CN.reg for easy command chaining.=0A= */=0A= setForm : function(fid) {=0A= form =3D $(fid);=0A= return this;=0A= },=0A= =0A= /**=0A= * Event that handles coordination between the field containing = the currently=0A= * selected country value, and the field #state which lists the = states/provinces=0A= * currently supported by CN Digital reg forms. State field is = disabled for non-supported=0A= * nations=0A= *=0A= * @type Event=0A= * @public=0A= */=0A= setState : function() {=0A= var stateField =3D $('#state', form),=0A= zipField =3D $("#zip", form),=0A= selection =3D this.value.toLowerCase();=0A= =0A= if (!(selection in states)) {=0A= stateField.attr({disabled: 'true'});=0A= zipField.attr({disabled: = 'true'}).data("val",zipField[0].value).val("");=0A= stateField[0][0].selected =3D true;=0A= CN.reg.removeReq("#zip, #state");=0A= } else {=0A= CN.reg.setReq("#zip, #state");=0A= zipField[0].value =3D (zipField.attr({disabled: = ''}).data("val") || zipField[0].value);=0A= var choice =3D stateField.children("[selected]").val() = || false;=0A= stateField.empty();=0A= stateField.attr('disabled', '')[0][0] =3D new = Option(states.msg + ' ' + states[selection].desc, '');=0A= $.each(states[selection].code, function(i) {=0A= stateField[0][i + 1] =3D new = Option(states[selection].name[i], this);=0A= if (choice && choice =3D=3D this) { // TODO: is this = =3D=3D intentional?=0A= stateField[0][i + 1].selected =3D true;=0A= }=0A= });=0A= }=0A= }=0A= };=0A= })(jQuery);=0A= =0A= =0A= /*=0A= SECTION: CN INSTANTIABLE CLASSES=0A= */=0A= =0A= =0A= /**=0A= * Interface creation and verification methods=0A= * @class Interface=0A= * @constructor=0A= * @author Ross Harmes and Dustin Diaz, from Pro JavaScript Design = Patterns=0A= *=0A= * @param name {String} The name of the interface. Preferable to use = IName convention.=0A= * @param methods {Array} The methods which need to be implemented by = the child classes.=0A= */=0A= CN.Interface =3D function(name, methods) {=0A= var i,=0A= il;=0A= if (arguments.length !=3D=3D 2) {=0A= throw new Error('CN.Interface constructor called with ' + = arguments.length + ' arguments, but expected exactly 2');=0A= }=0A= this.name =3D name;=0A= this.methods =3D [];=0A= for (i =3D 0, il =3D methods.length; i < il; i++) {=0A= if (typeof methods[i] !=3D=3D 'string') {=0A= throw new Error('CN.Interface constructor expects method = names to be passed in as strings');=0A= }=0A= this.methods.push(methods[i]);=0A= }=0A= };=0A= =0A= =0A= /**=0A= * Verifies that a class implements a given interface.=0A= * @method ensureImplements=0A= * @static=0A= *=0A= * @param object {Object} Any object to verify=0A= */=0A= CN.Interface.ensureImplements =3D function(object) {=0A= var i,=0A= il,=0A= inter,=0A= j,=0A= jl,=0A= method;=0A= if (arguments.length < 2) {=0A= throw new Error('Static method CN.Interface.ensureImplements = called with ' + arguments.length + ' arguments, but expected at least = 2');=0A= }=0A= for (i =3D 1, il =3D arguments.length; i < il; i++) {=0A= inter =3D arguments[i];=0A= if (inter.constructor !=3D=3D CN.Interface) {=0A= if (jQuery.browser.safari && jQuery.browser.version < 500) {=0A= // do nothing - safari 2 can't handle this constructor = check, this is a patch fix for now=0A= } else {=0A= throw new Error('Static method = CN.Interface.ensureImplements expects arguments two and above to be = instances of CN.Interface.');=0A= }=0A= }=0A= for (j =3D 1, jl =3D inter.methods.length; j < jl; j++) {=0A= method =3D inter.methods[j];=0A= if (!object[method] || typeof object[method] !=3D=3D = 'function') {=0A= throw new Error('Static method = CN.Interface.ensureImplements: object does not implement the ' + = inter.name + ' interface. Method ' + method + ' was not found.');=0A= }=0A= }=0A= }=0A= };=0A= =0A= =0A= /**=0A= * Creates an observable object=0A= * @class Observer=0A= * @constructor=0A= */=0A= CN.Observer =3D function(label) {=0A= /**=0A= * @property=0A= * @static=0A= */=0A= this.fns =3D [];=0A= /**=0A= * @property=0A= * @static=0A= */=0A= this.label =3D label || null;=0A= };=0A= =0A= /**=0A= * Holds the list of fired observers which provided a label at = contruction time=0A= * @property=0A= * @static=0A= * @memberOf CN.Observer=0A= */=0A= CN.Observer.haveFired =3D [];=0A= =0A= CN.Observer.prototype =3D {=0A= =0A= /**=0A= * Subscribes to an observable event=0A= * @method subscribe=0A= *=0A= * @param fn {Function} A function to execute when the subscribed = event fires=0A= */=0A= subscribe : function(fn) {=0A= this.fns.push(fn);=0A= },=0A= =0A= /**=0A= * Unsubscribes to an observable event=0A= * @method unsubscribe=0A= *=0A= * @param fn {Function} A function to remove from those executed = when the subscribed event fires=0A= */=0A= unsubscribe : function(fn) {=0A= this.fns =3D this.fns.filter(=0A= function(el) {=0A= if (el !=3D=3D fn) {=0A= return el;=0A= }=0A= }=0A= );=0A= },=0A= =0A= /**=0A= * Executes the functions bound to the observable=0A= * @method fire=0A= *=0A= * @param o {Object} Parameters to pass to the functions when = they are called=0A= * @param scope {Object} Optional scope to execute function within, = defaults to window=0A= */=0A= fire : function(o, thisObj) {=0A= var scope =3D thisObj || window;=0A= this.fns.forEach(function(el) {=0A= el.call(scope, o);=0A= });=0A= if (this.label && CN.Observer.haveFired.indexOf(this.label) = =3D=3D=3D -1) {=0A= CN.Observer.haveFired.push(this.label);=0A= }=0A= }=0A= };=0A= =0A= =0A= /**=0A= * Creates a timer=0A= * Adapted from GNU licensed JavaScript Timer=0A= * Original API Docs: = =0A= * Pass in the milliseconds to wait and the callback function to assign.=0A= * Timer functions are chainable, and can be started, stopped, paused, = resumed and restarted.=0A= * @class Timer=0A= * @constructor=0A= *=0A= * @param millis {Number} Milliseconds for the timer=0A= * @param callback {Function} A callback to execute each time the = interval is reached=0A= */=0A= CN.Timer =3D function(millis, callback) {=0A= this.interval =3D millis;=0A= this.timer =3D null;=0A= this.callbacks =3D [];=0A= this.multipliers =3D [];=0A= this.tickCounts =3D [];=0A= this.canRun =3D [];=0A= this.stoppedThreads =3D 0;=0A= this.shouldRunOnce =3D false;=0A= this.startedAt =3D -1;=0A= this.pausedAt =3D -1;=0A= this.addCallback(callback);=0A= return this;=0A= };=0A= =0A= CN.Timer.prototype =3D {=0A= =0A= preset : function() { // called from start()=0A= this.stoppedThreads =3D 0;=0A= this.startedAt =3D -1;=0A= this.pausedAt =3D -1;=0A= for (var i =3D 0, il =3D this.callbacks.length; i < il; i++) {=0A= this.canRun[i] =3D true;=0A= this.tickCounts[i] =3D 0;=0A= }=0A= },=0A= =0A= ticks : function(initInterval) {=0A= var that =3D this,=0A= i,=0A= il;=0A= for (i =3D 0, il =3D this.callbacks.length; i < il; i++) {=0A= if (typeof this.callbacks[i] =3D=3D=3D 'function' && = this.canRun[i]) {=0A= this.tickCounts[i]++;=0A= if (this.tickCounts[i] =3D=3D=3D this.multipliers[i]) {=0A= this.tickCounts[i] =3D 0;=0A= if (this.runOnce()) {=0A= this.canRun[i] =3D false;=0A= this.stoppedThreads++;=0A= }=0A= window.setTimeout(that.callbacks[i], 0);=0A= }=0A= }=0A= }=0A= if (this.runOnce() && this.stoppedThreads =3D=3D=3D = this.callbacks.length) {=0A= this.stop();=0A= }=0A= if (typeof initInterval =3D=3D=3D 'number') {=0A= this.stop().start(null, true);=0A= }=0A= },=0A= =0A= runOnce : function(isRunOnce) {=0A= if (typeof isRunOnce =3D=3D=3D 'undefined') {=0A= return this.shouldRunOnce;=0A= } else if (typeof isRunOnce =3D=3D=3D 'boolean') {=0A= this.shouldRunOnce =3D isRunOnce;=0A= } else {=0A= CN.logger.getInstance().log.error('Invalid argument for = runOnce');=0A= }=0A= return this;=0A= },=0A= =0A= /**=0A= * Resets the interval to the specified time or returns the current = interval setting=0A= * @method getSetInterval=0A= *=0A= * @param millis {Number} Milliseconds to change the timer's = interval to=0A= *=0A= * @return {Mixed} Either the current interval or the timer object = itself after resetting the interval=0A= */=0A= getSetInterval : function(millis) {=0A= if (typeof millis =3D=3D=3D 'undefined') {=0A= return this.interval;=0A= } else if (typeof millis =3D=3D=3D 'number') {=0A= this.interval =3D Math.floor(millis);=0A= }=0A= return this;=0A= },=0A= =0A= /**=0A= * Stops the timer.=0A= * @method stop=0A= */=0A= stop : function(isPausing) {=0A= if (this.timer) {=0A= if (!isPausing) {=0A= this.pausedAt =3D -1;=0A= }=0A= try {=0A= window.clearInterval(this.timer);=0A= } catch(e) {=0A= }=0A= this.timer =3D null;=0A= }=0A= return this;=0A= },=0A= =0A= isStopped : function() {=0A= return ((this.timer =3D=3D=3D null) && !this.isPaused());=0A= },=0A= =0A= /**=0A= * Starts the timer=0A= * @method start=0A= */=0A= start : function(initialInterval, withoutPreset) { // don't use = params when calling=0A= var tempInterval,=0A= that =3D this;=0A= =0A= if (this.isPaused()) {=0A= return this.resume();=0A= }=0A= if (!this.isStopped()) {=0A= return this;=0A= }=0A= if (!withoutPreset) {=0A= this.preset();=0A= }=0A= tempInterval =3D this.interval;=0A= if (typeof initialInterval =3D=3D=3D 'number') {=0A= tempInterval =3D initialInterval;=0A= }=0A= this.timer =3D window.setInterval(function() {=0A= that.ticks(initialInterval);=0A= }, tempInterval);=0A= this.startedAt =3D new Date().getTime();=0A= this.startedAt -=3D (this.interval - tempInterval);=0A= return this;=0A= },=0A= =0A= /**=0A= * Pauses the timer, without resetting. Use resume() to restart = playing.=0A= * @method pause=0A= */=0A= pause : function() {=0A= if (this.timer) {=0A= this.pausedAt =3D new Date().getTime();=0A= this.stop(true);=0A= }=0A= return this;=0A= },=0A= =0A= isPaused : function() {=0A= return (this.pausedAt >=3D 0);=0A= },=0A= =0A= /**=0A= * Resumes playing a paused timer=0A= * @method resume=0A= */=0A= resume : function() {=0A= if (this.isPaused()) {=0A= var tempInterval =3D this.interval - ((this.pausedAt - = this.startedAt) % this.interval);=0A= this.pausedAt =3D -1;=0A= this.start(tempInterval, true);=0A= }=0A= return this;=0A= },=0A= =0A= restart : function() {=0A= return this.stop().start();=0A= },=0A= =0A= /**=0A= * Adds a callback to the array to be executed at the timer's = interval=0A= * @method addCallback=0A= */=0A= addCallback : function(callback, n) {=0A= if (typeof callback =3D=3D=3D 'function') {=0A= this.callbacks.push(callback);=0A= if (typeof n =3D=3D=3D 'number') {=0A= n =3D Math.floor(n);=0A= this.multipliers.push(n < 1 ? 1 : n);=0A= } else {=0A= this.multipliers.push(1);=0A= }=0A= this.tickCounts.push(0);=0A= this.canRun.push(true);=0A= }=0A= return this;=0A= },=0A= =0A= clearCallbacks : function() {=0A= this.callbacks.length =3D 0;=0A= this.multipliers.length =3D 0;=0A= this.canRun.length =3D 0;=0A= this.tickCounts.length =3D 0;=0A= this.stoppedThreads =3D 0;=0A= return this;=0A= }=0A= };=0A= =0A= =0A= /**=0A= * DOM-related methods=0A= * @class dom=0A= * @static=0A= */=0A= CN.dom =3D CN.dom || {};=0A= =0A= =0A= /**=0A= * Temporary storage for DOM elements=0A= * @property storage=0A= * @static=0A= */=0A= CN.dom.storage =3D {=0A= activeClass : 'active',=0A= inactiveClass : 'inactive',=0A= innerTag : 'span'=0A= };=0A= =0A= =0A= /**=0A= * Removes an element temporarily from the document tree ('activating' a = tab, for example, by removing its link)=0A= * @method activateElement=0A= *=0A= * @param el {Node} A standard DOM element=0A= * @param storage {Object} A temporary storage variable=0A= * @param klass {String} An optional class name to apply=0A= *=0A= * @return {Object} The storage variable, now with the element added=0A= */=0A= CN.dom.storage.activateElement =3D function(el, storage, klass) {=0A= var oldLink,=0A= newLink,=0A= newEl;=0A= =0A= // Uses the default class name unless one is provided=0A= klass =3D klass || this.activeClass;=0A= =0A= // If there is a link present in the element=0A= if (el.getElementsByTagName('a').length > 0) {=0A= =0A= // Stores the link - Note that the cloning of the = element is=0A= // because of an IE bug where the links get frozen on = the hover=0A= // state. Creating a new element altogether fixes this = bug. For=0A= // good browsers, we can just remove the link to storage.=0A= if (jQuery.browser.msie || jQuery.browser.safari) {=0A= oldLink =3D jQuery(el.getElementsByTagName('a')[0]);=0A= newLink =3D oldLink.clone(true);=0A= storage =3D jQuery(newLink).get()[0];=0A= oldLink.remove();=0A= } else {=0A= storage =3D el.removeChild(el.getElementsByTagName('a')[0]);=0A= }=0A= =0A= jQuery(el).addClass(klass);=0A= =0A= // Creates a new span to hold the contents and aid in = styling=0A= newEl =3D document.createElement(this.innerTag);=0A= newEl.innerHTML =3D storage.innerHTML;=0A= =0A= // Appends the span to the element and returns the = storage variable reference=0A= el.appendChild(newEl);=0A= return storage;=0A= }=0A= };=0A= =0A= =0A= /**=0A= * Reinserts an element temporarily from the document tree=0A= * @method deactivateElement=0A= * @static=0A= *=0A= * @param el {Node} A standard DOM element=0A= * @param storage {Object} A temporary storage variable=0A= * @param klass {String} An optional class name to apply=0A= */=0A= CN.dom.storage.deactivateElement =3D function(el, storage, klass) {=0A= =0A= // Uses the default class name unless one is provided=0A= klass =3D klass || this.activeClass;=0A= =0A= // If there is a span inside the element=0A= if (el.getElementsByTagName(this.innerTag).length > 0) {=0A= =0A= // Gets the span element, remove it and the class name, = and add back what is in storage=0A= var children =3D el.getElementsByTagName(this.innerTag);=0A= el.removeChild(children[0]);=0A= el.appendChild(storage);=0A= =0A= jQuery(el).removeClass(klass);=0A= =0A= }=0A= };=0A= =0A= /**=0A= * Queues up function calls. Pass it a string of the function name along = with an array of=0A= * args and it will execute those functions when calling the execute() = method.=0A= * Used for Omniture on forums to overcome problems with ordering of = script includes.=0A= * @todo Add support for multiple queues. Any way to remove the eval = from this?=0A= * @param {mixed} mixed The object being tested=0A= * @return {boolean} the result=0A= */=0A= CN.functionQueue =3D (function() {=0A= var q =3D [];=0A= =0A= return {=0A= =0A= /**=0A= * Add functions to a queue to execute later.=0A= * @param {string} [f] Function to call=0A= * @param {array} [a] Array of args to pass to function.=0A= * @param {string} [qId] Not implemented but would be used to = support multiple queues of functions.=0A= */=0A= addToQueue : function (f, a, qId) {=0A= var temp =3D {fName:f, args:a};=0A= q.push(temp);=0A= },=0A= =0A= /**=0A= * Executes functions in the queue.=0A= * @param {string} [qId] Note implemented but would execute = functions in a specific queue. Would allow for multiple queues.=0A= */=0A= execute : function (qId) {=0A= var l =3D q.length,=0A= i,=0A= tempF;=0A= =0A= for (i=3D0; i').attr({=0A= frameBorder : 0,=0A= scrolling : 'no'=0A= }).css({=0A= border : 'none',=0A= margin : 0,=0A= padding : 0=0A= }),=0A= =0A= /* METHODS */=0A= =0A= /**=0A= * Construct the ad request url=0A= * @param {object} ad Dart ad object=0A= * @param {string} [url] Optional url to use inplace = of ad object properties=0A= * @memberOf CN.dart=0A= * @private=0A= */=0A= buildurl =3D function(ad,url){=0A= return common.url + common.site=0A= + '/' + (ad.zone || common.zone)=0A= + 'sz=3D'+ ad.sz + ';'=0A= + (url || 'tile=3D' + ad.tile + ';'=0A= + (ad.tile=3D=3D=3D1 && common.dcopt=3D=3D=3Dtrue ? = 'dcopt=3Dist;' : '')=0A= + keywordString(ad)=0A= + 'ord=3D'+common.ord+';'=0A= );=0A= },=0A= =0A= /**=0A= * Create and store individual ad objects by extending the base = common.ad.=0A= * Initiates ad call, or ads ad call to queue.=0A= * @param {string} name Unique name prefix for = storage, container div, and iframe id generation=0A= * @param {object} [pars] Addtion ad params to = extend/overide common.ad values.=0A= * @memberOf CN.dart=0A= * @private=0A= */=0A= call =3D function(name,pars){=0A= var key=3D name+pars.sz,=0A= zone;=0A= =0A= ads[key] =3D {=0A= el : $('div#'+key+common.container),=0A= sz : pars.sz,=0A= kws : unique(common.ad.kws,pars.kws || []),=0A= xkws : pars.kws || [],=0A= store : pars.store=3D=3D=3Dfalse ? false : = common.ad.store,=0A= tile : common.tiles.push(key),=0A= collapse : pars.collapse=3D=3D=3Dtrue,=0A= cc : 0=0A= };=0A= =0A= if(pars.zone){=0A= zone=3Dtest.adzone(pars.zone);=0A= zone ? ads[key].zone=3Dzone : false;=0A= }=0A= /* If intialization is complete, and we're not in = paused-state=0A= * execute ad call immediatly.=0A= */=0A= if(common.embed || common.initialized && = !common.pause.length){=0A= return draw(key);=0A= }=0A= $D.info(messager('queue'), [key,ads[key]]);=0A= =0A= /* Add to the request queue to be executed on = CN.dart.ready() */=0A= = $(window).one('CN.customEvents.dartRequest',{key:key},function(){draw(key= );});=0A= return this;=0A= },=0A= =0A= /**=0A= * Generate an script tag the adcall, and append to the = container [placement][common.container]=0A= * This is the actual call execution for embedded ads=0A= * @param {string} placement Dart ad placement identifier=0A= * @param {string} [url] Url to be used in place of = ad pars=0A= */=0A= drawEmbedded =3D function(placement,url) {=0A= var ad =3D ads[placement],=0A= src=3D(ad.url=3Dbuildurl(ad,url)) && ad.url;=0A= =0A= ad.frame=3Dfalse;=0A= =0A= document.write('');=0A= =0A= $D.info(messager('call'), [placement,ad]);=0A= return this;=0A= },=0A= =0A= /**=0A= * Generate an iframe for the ad, and append to the container = [placement][common.container]=0A= * This is the actual call execution for iframed ads=0A= * @param {string} placement Dart ad placement identifier=0A= * @param {string} [url] Url to be used in place of = ad pars=0A= */=0A= drawFrame =3D function(placement,url) {=0A= var ad =3D ads[placement],=0A= dims=3Dad.sz.split('x'),=0A= frsrc=3D(ad.url=3Dbuildurl(ad,url)) && common.frameurl + = '#' + encodeURIComponent(ad.url);=0A= =0A= ad.el.html(ad.frame=3DnakedFrame.clone().attr({=0A= id : placement,=0A= name : placement,=0A= height : ad.collapse ? 0 : dims[1],=0A= width : dims[0],=0A= src : frsrc=0A= }).bind('load',{key:placement},onFrameDraw)=0A= );=0A= =0A= $D.info(messager('call'), [placement,ad]);=0A= return this;=0A= },=0A= =0A= /**=0A= * Default method for drawing ads defined here.=0A= * If common.emed=3Dtrue, init will set draw=3DdrawEmbedded.=0A= * The rest of the operations should be seamless.=0A= */=0A= draw=3DdrawFrame,=0A= =0A= /**=0A= * Generate a script el for embedded ads=0A= * @param {script} src Ad source.=0A= */=0A= embedScript =3D function(src){=0A= var scp =3D document.createElement('script');=0A= =0A= return scp.type=3D"text/javascript",=0A= scp.src=3Dsrc,=0A= scp;=0A= },=0A= =0A= /**=0A= * Initialize CN.dart, setting common ad parameters and = evaluating all registered plug-ins.=0A= * Once plug-ins are all evaluated, CN.dart is put in a ready = state, which signals the begining=0A= * of ad calls. Any calls made before the ready stat is set = will be placed in a queue.=0A= * @param {object} pars Shared params - ex: Site, = Zone, shared kws.=0A= * @param {string} [url] Url to be used in place of = ad pars=0A= */=0A= init =3D function(pars){=0A= =0A= common.site =3D pars.site,=0A= common.zone =3D pars.zone,=0A= common.ad =3D {=0A= store : true,=0A= kws : pars.kws,=0A= tile : common.tile=0A= };=0A= updateKws();=0A= test.charmap(pars.charmap);=0A= plugin.run();=0A= =0A= if(common.embed) {=0A= draw=3DdrawEmbedded;=0A= $D.info(messager('embed',true),[]);=0A= }=0A= =0A= $(window).trigger('CN.customEvents.dartInitialized');=0A= =0A= return ready();=0A= },=0A= =0A= /**=0A= * Translate kw array into a ';'-delimited query string=0A= * @param {object} ad Ad object to grab keywords = from for translation.=0A= * @param {string} [url] Url to be used in place of = ad pars.=0A= */=0A= keywordString =3D function(ad){=0A= return 'kw=3D' + ad.kws.join(';kw=3D') + ';' + = (ad.xkws.length ? '!c=3D' + ad.xkws.join(';!c=3D') + ';' : '');=0A= },=0A= =0A= /**=0A= * Callback even dispatcher, executed on frame-load=0A= * @param {object} e Event object for callback=0A= */=0A= onFrameDraw =3D function(e){=0A= var ad =3D ads[e.data.key];=0A= try {=0A= ad.doc=3Dad.frame.contents();=0A= } catch(err) {=0A= $D.user(e, [e.target, e.target.id]);=0A= }=0A= =0A= = $(window).trigger('CN.customEvents.dartAdDrawn',[e.data.key,"#"+e.data.ke= y, ad]);=0A= =0A= _resize(e);=0A= },=0A= =0A= plugin =3D {=0A= =0A= /**=0A= * Plug-in holder array.=0A= * Registered plug-ins are stored here.=0A= * @see CN.dart.register=0A= */=0A= queue : [],=0A= =0A= register : function(plug){=0A= if(!plug || !plug.init){=0A= $D.info(messager('plug',false), [plug ? plug.name : = '', plug || {}]);=0A= return false;=0A= }=0A= this.queue.push(plug);=0A= $D.info(messager('plug'), [plug.name || '', plug]);=0A= return true;=0A= },=0A= =0A= run : function(){=0A= var i=3D0,=0A= len=3Dthis.queue.length,=0A= val,=0A= passed=3Dfalse,=0A= plug;=0A= =0A= for(; i');=0A= }=0A= =0A= },=0A= =0A= /**=0A= * Resize iFrame height to fit content on load.=0A= * @description This is a private function that is triggered by = the onload=0A= event of the iFrame. This will also be triggered = by the=0A= public resize method.=0A= * @memberOf CN.dart=0A= * @private=0A= * @event=0A= */=0A= _resize =3D function(e) {=0A= var frame=3D e.data && e.data.key ? ads[e.data.key].frame : = $(e.target),=0A= ad=3Dads[frame.attr('name')],=0A= body,=0A= bheight=3D0;=0A= =0A= if(ad.doc){=0A= body=3Dad.doc.find('body');=0A= } else{=0A= return=0A= }=0A= =0A= $('iframe', body).bind('load',{key:e.data.key},_resize);=0A= =0A= if (!$('.textAd', body).length || !$('#adHolder a', = body).eq(0).text()) {=0A= $('#adHolder', body).css({ 'font-size': 0, = 'line-height': 0 });=0A= }else{=0A= $('.textAd',body).remove().appendTo(frame.parent())=0A= }=0A= =0A= bheight=3Dbody.outerHeight();=0A= frame.css({=0A= border : 'none',=0A= margin : 0,=0A= width : ad.el.width(),=0A= height:bheight=3D=3D=3D1 ? 0 : bheight=0A= });=0A= =0A= $D.info('CN Ad Frame Resize', = [e.data.key,frame.css('height') +' x '+ frame.css('width')]);=0A= =0A= // This might be a horrible idea... but if the ad is in = view, then try up to 3 times to=0A= // refresh if it looks like the ad is empty.=0A= if(common.retry && !ad.collapse && frame.height()< 1 && = ad.cc<2 && visable(ad)){=0A= refresh(e.data.key,{cc:++ad.cc});=0A= $D.info('CN Ad Empty.. retry('+ad.cc+')', [e.data.key]);=0A= }else{=0A= ad.cc=3D1;=0A= }=0A= },=0A= =0A= visable =3D function(ad){=0A= var win =3D $(window),=0A= top =3D win.scrollTop(),=0A= adtop =3D ad.frame.offset().top;=0A= =0A= return !(top > (adtop + ad.frame.height()) || (top + = win.height()) < adtop);=0A= },=0A= =0A= updateKws =3D function(){=0A= for (var ad in ads){=0A= ads[ad].kws =3D unique(common.kws,ads[ad].kws)=0A= }=0A= },=0A= =0A= /**=0A= * All test conditions necessary for properly allowing = modifications to=0A= * values in the common object.=0A= * @description Used during plugin evaluation to ensure proper = value replacement.=0A= * All tests must return true or false to indicated = falure or success.=0A= * @memberOf CN.dart=0A= * @private=0A= * @event=0A= */=0A= test =3D (function(){=0A= var=0A= // Match any js-reserved characters=0A= reserved=3D/([\?\+\\\^\$\*\.\(\)\[\]\|])/g,=0A= siteResolver=3Dfunction(val){=0A= if(CN.site.testads){=0A= return common.site;=0A= }=0A= var $val=3Dval.split('.'),=0A= $site=3Dcommon.site.split('.'),=0A= i=3D0,=0A= len=3D $site.length > $val.length ? $site.length = : $val.length,=0A= result=3D[];=0A= for (;i 1 ? ret : ret[prop];=0A= },=0A= =0A= init : init,=0A= =0A= ondraw : common.embed ? false : onFrameDraw,=0A= =0A= ready : ready,=0A= =0A= register : function(install){=0A= if(!install){=0A= return this;=0A= }=0A= install =3D [].concat(install);=0A= var i=3D0,=0A= len=3Dinstall.length;=0A= for(;i=3D0) {=0A= return;=0A= }=0A= if(document.domain.indexOf("wired.com")>=3D0) {=0A= var m =3D document.createElement('script'); m.type =3D = 'text/javascript'; m.async =3D true;=0A= m.src =3D 'http' + (document.location.protocol[4] =3D=3D 's' ? = 's' : '') + '://m.wired.com/mobify/redirect.js';=0A= var s =3D document.getElementsByTagName('script')[0]; = s.parentNode.insertBefore(m, s);=0A= }=0A= })();=0A= //end mobify=0A= =0A= function addLoadEvent(func) {=0A= var oldonload =3D window.onload;=0A= if (typeof window.onload !=3D 'function') =0A= {=0A= window.onload =3D func;=0A= } =0A= else =0A= {=0A= window.onload =3D function() =0A= {=0A= oldonload();=0A= func();=0A= };=0A= }=0A= }=0A= =0A= /*=0A= * (c)2006 Jesse Skinner/Dean Edwards/Matthias Miller/John Resig=0A= * Special thanks to Dan Webb's domready.js Prototype extension=0A= * and Simon Willison's addLoadEvent=0A= *=0A= * For more info, see:=0A= * http://www.thefutureoftheweb.com/blog/adddomloadevent=0A= */=0A= =0A= addDOMLoadEvent =3D (function(){=0A= // create event function stack=0A= var load_events =3D [],=0A= load_timer,=0A= script,=0A= done,=0A= exec,=0A= old_onload,=0A= init =3D function () {=0A= done =3D true;=0A= =0A= // kill the timer=0A= clearInterval(load_timer);=0A= =0A= // execute each function in the stack in the order they were = added=0A= while (exec =3D load_events.shift())=0A= exec();=0A= =0A= if (script) script.onreadystatechange =3D '';=0A= };=0A= =0A= return function (func) {=0A= // if the init function was already ran, just run this function = now and stop=0A= if (done) return func();=0A= =0A= if (!load_events[0]) {=0A= // for Mozilla/Opera9=0A= if (document.addEventListener)=0A= document.addEventListener("DOMContentLoaded", init, = false);=0A= =0A= // for Internet Explorer=0A= /*@cc_on @*/=0A= /*@if (@_win32)=0A= document.write("