diff options
70 files changed, 4517 insertions, 30 deletions
diff --git a/static/about.html b/static/about.html index 85adbad..85adbad 100644..100755 --- a/static/about.html +++ b/static/about.html diff --git a/static/bgnav.jpg b/static/bgnav.jpg Binary files differindex 0913e21..0913e21 100644..100755 --- a/static/bgnav.jpg +++ b/static/bgnav.jpg diff --git a/static/browser.css b/static/browser.css new file mode 100755 index 0000000..30ea714 --- /dev/null +++ b/static/browser.css @@ -0,0 +1,493 @@ +/* pichat.css */ + +body { + + background-color:#e3e3e3; + margin:0; + +} + + +#content{ + z-index: 3; + overflow: auto; + min-width:600px; +} + +#chatboxx { + position: fixed; + top:80px; +} + +#rapper { + top: 0px; +} + +#footerc +{ + text-align:center; + position:fixed; + width:100%; + bottom:0px; +line-height:3.1; + font-size:11px; +word-spacing:8px; +height:28px; + color: #000; + +} +#footerc a { + font-size: 11px; + color: #000; +} +#footerc a:link { + text-decoration: none; + font-size: 11px; +color:000; +} + +#footerc a:hover { + text-decoration:none; + font-size: 11px; + color: #f0e; +} + + +#messagePane { + border: 2px solid #c8cbce; + + +top:56px; +bottom:65px; + position:fixed; + width: 99%; + background-color:#FFF; +left:0.3%; + + z-index:5; +} + +#messageList { + height: 100%; + width: 100%; + overflow-y: auto; + overflow-x: hidden; +} +#messagetabs { + height: 40px; + padding: 5px; + position: fixed; + width: 80%; + max-width:1500px; + overflow-y: hidden; + overflow-x: hidden; + top:48px; + left:0px; + z-index:1; +} + +#msgInputDiv { + position:relative; + min-width:500px; + z-index:100; +left:1px; +bottom:10px; + width: 100%; +} + +#msgInput { + width: 100%; + z-index:100; + background-color:#FFF; + margin-top: 15px; + left:-3px; + position:relative; + border:2px solid #c8cbce; +height:36px; +font-size:20px; + min-width:500px; + + box-shadow: 2px 3px 4px #eee; +-webkit-box-shadow: 2px 3px 4px #eee; +-moz-box-shadow: 2px 3px 4px #eee; +filter: progid:DXImageTransform.Microsoft.dropShadow(color=#eee, offX=3, offY=4, positive=true); +} +.msgInput { + min-width:500px; + z-index:100; +} + +#msgSubmit { + + position:absolute; + display:inline-block; + width:120px; +height:35px; +right:0px; +font-size:20px; +background-image:url(/static/bg-btn-blue.png); +top:15px; + text-align:center; + z-index:100; + cursor:pointer; + background-color:#087cff; + border-top-right-radius:10px; + -webkit-border-top-right-radius:5px; + -moz-border-radius-topright:5px; + border-bottom-right-radius:5px; + -webkit-border-bottom-right-radius:5px; + -moz-border-radius-bottomright:5px; + border-radius:2px; + font-size:12px; + color:#fff; + text-shadow:1px 1px 3px rgba(0,0,0,0.5); +} +.msgDiv img{ + max-width:650px; + width: expression(this.width > 650 ? 650: true); + max-height:400px; + height: expression(this.width > 400 ? 400: true); + max-width:400px; + z-index: 1; +} +.msgDiv {padding:2px; +} +.oldmsg { + color: #666; +} + +#userList { + overflow-x: hidden; + overflow-y:auto; + height: auto; + margin: 0px; + position: absolute; + padding: 5px; + top:85px; + min-width: 150px; + width:11%; + float:right; + right: 6%; + font-family: Arial, Helvetica, sans-serif; + font-size: 14px; + font-weight:420; + border-top-left-radius:5px; + border-top-right-radius:5px; + -webkit-border-top-left-radius:5px; + background-color:#FFF; + -webkit-border-top-right-radius:5px; + -moz-border-radius-topleft:5px; + -moz-border-radius-topright:5px; + border-bottom-left-radius:5px; + border-bottom-right-radius:5px; + -webkit-border-bottom-left-radius:5px; + -webkit-border-bottom-right-radius:5px; + -moz-border-radius-bottomleft:5px; + -moz-border-radius-bottomright:5px; + max-height:450px; + box-shadow: 3px 4px 4px #c8cbce; +-webkit-box-shadow: 3px 4px 4px #c8cbce; +-moz-box-shadow: 3px 3px 4px #c8cbce; +filter: progid:DXImageTransform.Microsoft.dropShadow(color=#c8cbce, offX=3, offY=4, positive=true); + text-overflow:ellipsis; + z-index:18; + text-align: left; +} +.username{height:30px; +margin-top:6px; +line-height:20px; +text-indent:6px; +z-index:18; +min-width:90px; +overflow:hidden; + +} +.username a { +display:block; +width:100%; +height:100%; +text-decoration:none; +} +.username a:hover { +display:block; +width:100%; +height:100%; +background-image:url(/static/moverc.png); +background-repeat:repeat-x; +color:#fff; +text-decoration:none; +background-color:#f3f3f3; + border-top-right-radius:5px; + -webkit-border-top-right-radius:5px; + -moz-border-radius-topright:5px; + border-bottom-right-radius:5px; + -webkit-border-bottom-right-radius:5px; + -moz-border-radius-bottomright:5px; +} +#userList img{ + max-width:30px; + width: expression(this.width > 30 ? 30: true); + max-height:30px; + height: expression(this.width > 30 ? 30: true); + max-width:30px; + + float:right; + right:1px; + z-index:77; + height:30px; + border-top-left-radius:3px; + border-top-right-radius:3px; + -webkit-border-top-left-radius:3px; + -webkit-border-top-right-radius:3px; + -moz-border-radius-topleft:3px; + -moz-border-radius-topright:3px; + border-bottom-left-radius:3px; + border-bottom-right-radius:3px; + -webkit-border-bottom-left-radius:3px; + -webkit-border-bottom-right-radius:3px; + -moz-border-radius-bottomleft:3px; + -moz-border-radius-bottomright:3px; +} + +#userListicon { + overflow: auto; + height: 70%; + margin: 0px; + position: fixed; + padding: 5px; + top:48px; + width: 7%; + float:right; + right: 35px; + font-family: Arial, Helvetica, sans-serif; + font-size: 12px; + text-transform: uppercase; + min-width:72px; + line-height:13px; + z-index:1; + font-weight: bold; + font-family: Arial, Helvetica, sans-serif; + color: #666; + text-transform:none; + +} +#avatar +{ + right:1px; + float:right; + text-align:left; + width:auto; + +} + +#binfo { + font-family: Arial, Helvetica, sans-serif; + font-size: 11px; + bottom + #chatrap{ + top: 105px; + left:0px; + position:absolute; + width: 100%; + padding-bottom:20px; +} +#chatrap{ + top: 105px; + left:0px; + position:absolute; + width: 100%; + padding-bottom:20px; +} + +#input { + padding-right:15px; + line-height:22px; + font-size: 12px; +} + #loghead { + border-bottom:0px; + padding-left: -50px; + margin-right:60%; + width:70%; + letter-spacing:-3px; + color:#504F61; + height:28px; + font-size:33px; + font-family:Arial, Helvetica, sans-serif; + font-weight:bold; + text-transform:capitalize; + text-shadow: -6px 4px 4px #ccc; + padding-bottom:12px; + left: -40px; + background-color: #FFF; + top: 80px; + position: fixed; + } + +#logc +{ + margin-right:10%; + margin-left:10%; + background-color:#FFF; + padding-left: 40px; + padding-bottom: 30px; + padding-top: 15px; +} + + + #profile { + float: right; + border:1px solid #000; + padding: 20px; + width: 180px; + margin-right:15%; + background-color:#FFF; + background-image:url(/static/cloudbg2.png); + background-position:center; + z-index:10; + border-top-right-radius:5px; + -webkit-border-top-right-radius:5px; + -moz-border-radius-topright:5px; + min-height:600px; + } +#chatrap{ + top: 105px; + left:0px; + position:absolute; + width: 100%; + margin: 0; + padding-bottom:105px; +} + +#log +{ + border: 2px #F1F1F1; + margin-right:15%; + margin-left:15%; + background-color:#FFF; + padding-left: 40px; + padding-bottom: 80px; + padding-top: 15px; + min-height: 800px; + border-top-left-radius:5px; + border-top-right-radius:5px; + -webkit-border-top-left-radius:5px; + -webkit-border-top-right-radius:5px; + -moz-border-radius-topleft:5px; + -moz-border-radius-topright:5px; + border-bottom-left-radius:5px; + border-bottom-right-radius:5px; + -webkit-border-bottom-left-radius:5px; + -webkit-border-bottom-right-radius:5px; + -moz-border-radius-bottomleft:5px; + -moz-border-radius-bottomright:5px; +} +#posts { + + + +} +.logged-dump img{ + max-width:650px; + width: expression(this.width > 500 ? 500: true); + max-height:400px; + height: expression(this.width > 500 ? 500: true); + border:0px; + z-index:4; + + + +} +.logged-dump{ + + + + + padding: 15px; + font-family: Arial, Helvetica, sans-serif; + margin-left:15%; + width:60%; + + font-size: 12px; + text-transform: uppercase; + border-top-left-radius:5px;border-top-right-radius:5px;-webkit-border-top-left-radius:5px;-webkit-border-top-right-radius:5px;-moz-border-radius-topleft:5px;-moz-border-radius-topright:5px; + border-bottom-left-radius:5px;border-bottom-right-radius:5px;-webkit-border-bottom-left-radius:5px;-webkit-border-bottom-right-radius:5px;-moz-border-radius-bottomleft:5px;-moz-border-radius-bottomright:5px; + min-width:72px; + line-height:15px; + background-color:#F2F2F2; + background-image:/static/footer.png; + background-position:bottom; + border:solid 1px #0f1e31; + z-index:4; + text-align: left; + margin:15px; + line-height:5px; + + +} + .editable { + color: #0AA; + } + .editing { + color: #F0F; + } + div#avatar { + overflow: hidden; + text-overflow: ellipsis; + } + + img#avatarPic { + max-height:250px; + } + + #logged-dump { + border: 1px solid dotted; + padding: 5px; + } + #loghead { + border-bottom:0px; + padding-left: -50px; + margin-right:60%; + width:auto; + letter-spacing:-3px; + color:#087cff; + height:28px; + font-size:33px; + font-family:Arial, Helvetica, sans-serif; + font-weight:bold; + text-transform:capitalize; + text-shadow: -6px 4px 4px #ccc; + padding-bottom:12px; + left: -40px; + } + +p { + font-family: Verdana, Arial, Helvetica, sans-serif; + font-size: 7px; +} +a { + font-size: 12px; + color: #000; +} +a:link { + text-decoration: none; +} +a:visited { + text-decoration: none; + color: #000; +} +a:hover { + text-decoration: none; + color: #00F; +} +a:active { + text-decoration: none; + color: #000; +} +td { + font-family: Arial, Helvetica, sans-serif; + letter-spacing:-1px; + font-size: 12px; + color: #000000; +} +.btnav { border: 0px #000000 solid;} diff --git a/static/browser.html b/static/browser.html new file mode 100755 index 0000000..5306a5d --- /dev/null +++ b/static/browser.html @@ -0,0 +1,255 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> +<title>dump.fm - Browser/Search Tool</title> + +<head> + + + <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> + <script src="dumpsearch.js" type="text/javascript"></script> + <style type="text/css"> + +a { + font-size: 12px; + color: #f0e; +} +a:visited { + color: #f0e; +} +a:hover { + color: #f0e; +} +a:active { + color: #f0e; +} +#ish {position:absolute; +left:20%; +top:5%; +line-height:19; +} + + + body { + font-size:13; + font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; + + +} +#rapper{ +} + #container { + text-align: left; + font-family: sans-serif; + color: #4E4848; + margin-left: auto; + margin-right: auto; + width: 1200px; + } + #description {display:none;width:790px;} + #description div, .post, .result {margin: -px 270px;width:470px;} + #description p > p,#description p {margin:0;line-height:.1;width:600;} + #description img {float:left;margin:0 12px 32px 0;} +table.search{font-family:Verdana,Arial,Helvetica,sans-serif;text-align:left;font-size:11px;color:#333}.gsc-trailing-more-results,.gsc-resultsHeader,.gsc-search-box{display:none}.gsc-results{padding-left:20px}#searchControl .gsc-control{width:550px;padding:10px;padding-left:20;}select, label{font:bold 11px Arial,Helvetica,sans-serif;color:#003;text-transform:uppercase;margin-right:5px;line-height:.1;}input#q{font:bold 11px Arial,Helvetica,sans-serif;color:#F00;height:2em;padding:3px;border-top:2px solid #999;border-right:2px solid #999;border-bottom:1px solid #999;border-left:1px solid #999;} +#logo{padding-left:20;} +.gsc-control img{ + max-width:500px; + width: expression(this.width > 500 ? 500: true); + max-height:400px; + height: expression(this.width > 500 ? 500: true); + + + </style></head> + +<body onLoad="setupZoom()"></p> + + + <p> + </p> + <p> + <input name="q" type="text" id="q" onChange="searchImages();" size="55%"> + <input type="submit" name="submit" id="submit" value="Search Images"> + + + + </p> +<p> + <label>where: + <select name="site" id="site" onChange="searchImages();"> + <option value="flickr.com" selected>flickr</option> + <option value="zooomr.com">zooomr</option> + <option value="photobucket.com">photobucket</option> + <option value="myspace.com">myspace</option> + <option value="wordpress.com">wordpress</option> + <option value="blogger.com">blogger</option> + <option value="typepad.com">typepad</option> + <option value="picsearch.com">picsearch</option> + <option value="webshots.com">webshots</option> + <option value="http://i.walmartimages.com/">walmart</option> + <option value="http://www.ibiblio.org">ibiblio</option> + <option value="gov">US Government</option> + <option value="deviantart.com">deviant art</option> + <option value="corbis.com">corbis</option> + <option value="msn.com">msn</option> + + <option value="made-in-china.com">made in china</option> + <option value="0" selected>EVERYWHERE</option> + </select> + </label> + <label> + <input name="showFaces" type="checkbox" onClick="searchImages();"> + Only Faces</label> + ★<label> hot shit</label>★ + <input type="radio" name="safeSearch" id="safeSearch2" value="off" onClick="searchImages();"checked> + Always ON + + <label><br> + File Type</label> + <input type="radio" name="type" value="jpg" onClick="searchImages();"> + JPG + <input name="type" type="radio" value="png" onClick="searchImages();"> + PNG + <input name="type" type="radio" value="bmp" onClick="searchImages();"> + BMP + <input type="radio" name="type" value="gif" onClick="searchImages();"> + GIF + <input type="radio" name="type" value="0" checked onClick="searchImages();"> + Any + <br> + <label>Image Size</label> + <input type="radio" name="size" value="small" onClick="searchImages();"> + Small + <input name="size" type="radio" value="medium" onClick="searchImages();"> + Medium + <input type="radio" name="size" value="large" onClick="searchImages();"> + Large + <input type="radio" name="size" value="xlarge" onClick="searchImages();"> + Extra Large + <input type="radio" name="size" value="0" checked onClick="searchImages();"> + All Sizes + + + <label><br> + Image Color</label> + <input type="radio" name="color" value="bw" onClick="searchImages();"> + Black & White + <input name="color" type="radio" value="gray" onClick="searchImages();"> + Gray + <input type="radio" name="color" value="color" onClick="searchImages();"> + Color + <input type="radio" name="color" value="0" checked onClick="searchImages();"> +Whateva</p></td> + + + <tr> + <td colspan="2"><div id="searchControl">Loading...</div> + + + + + <script type="text/javascript"> + google.load('search', '1'); + google.setOnLoadCallback(searchImages, true); + + function searchImages() { + var control = new google.search.SearchControl(); + control.setResultSetSize(google.search.Search.LARGE_RESULTSET); + control.setNoResultsString("Sorry but no images match your search criteria. Please modify your search query and try again."); + control.setLinkTarget(google.search.Search.LINK_TARGET_BLANK); + + var options = new google.search.SearcherOptions(); + options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN); + + var searcher = new google.search.ImageSearch(); + + for (var i = 0; i < document.forms[0].safeSearch.length; i++) { + if (document.forms[0].safeSearch[i].checked) { + if (document.forms[0].safeSearch[i].value == "off") + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_OFF); + else if (document.forms[0].safeSearch[i].value == "moderate") + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_MODERATE); + else if (document.forms[0].safeSearch[i].value == "strict") + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_STRICT); + else + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, null); + break; + } + } + + for (var i = 0; i < document.forms[0].size.length; i++) { + if (document.forms[0].size[i].checked) { + if (document.forms[0].size[i].value == "small") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_SMALL); + else if (document.forms[0].size[i].value == "medium") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_MEDIUM); + else if (document.forms[0].size[i].value == "large") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_LARGE); + else if (document.forms[0].size[i].value == "xlarge") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_EXTRA_LARGE); + else + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, null); + break; + } + } + + for (var i = 0; i < document.forms[0].type.length; i++) { + if (document.forms[0].type[i].checked) { + if (document.forms[0].type[i].value == "bmp") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_BMP); + else if (document.forms[0].type[i].value == "jpg") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_JPG); + else if (document.forms[0].type[i].value == "png") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_PNG); + else if (document.forms[0].type[i].value == "gif") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_GIF); + else + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, null); + break; + } + } + + for (var i = 0; i < document.forms[0].color.length; i++) { + if (document.forms[0].color[i].checked) { + if (document.forms[0].color[i].value == "bw") + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, google.search.ImageSearch.COLORIZATION_BLACK_AND_WHITE ); + else if (document.forms[0].color[i].value == "gray") + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, google.search.ImageSearch.COLORIZATION_GRAYSCALE); + else if (document.forms[0].color[i].value == "color") + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, google.search.ImageSearch.COLORIZATION_COLOR); + else + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, null); + break; + } + } + + var list = document.forms[0].site; + if (list.options[list.selectedIndex].value == 0) + searcher.setSiteRestriction(null); + else + searcher.setSiteRestriction(list.options[list.selectedIndex].value); + + for (var i = 0; i < document.forms[0].site.length; i++) { + if (document.forms[0].site[i].checked) { + if (document.forms[0].site[i].value == 0) + searcher.setSiteRestriction(null); + else + searcher.setSiteRestriction(document.forms[0].site[i].value); + break; + } + } + + if (document.forms[0].showFaces.checked) + searcher.setRestriction(GimageSearch.RESTRICT_IMAGETYPE, GimageSearch.IMAGETYPE_FACES); + else + searcher.setRestriction(GimageSearch.RESTRICT_IMAGETYPE); + + control.addSearcher(searcher, options); + control.draw(document.getElementById("searchControl")); + + control.execute(document.getElementById('q').value); + return false; + } + </script> +</div></div> +</body> +</html>
\ No newline at end of file diff --git a/static/cat.jpeg b/static/cat.jpeg Binary files differindex f6bfa16..f6bfa16 100644..100755 --- a/static/cat.jpeg +++ b/static/cat.jpeg diff --git a/static/chatbar.html b/static/chatbar.html new file mode 100755 index 0000000..69d0727 --- /dev/null +++ b/static/chatbar.html @@ -0,0 +1,57 @@ +<html> + <head> + <title>dump.fm</title> + <link rel="stylesheet" type="text/css" href="/static/reset.css"> + <link rel="stylesheet" type="text/css" href="/static/pichat.css"> + + <link rel="shortcut icon" href="favicon.ico"> + <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> + <script type="text/javascript" src="sha1.js"></script> + <script type="text/javascript" src="pichat.js"></script> + <script> + jQuery(document).ready(initChat); + var Nick = $json_user_nick$; + </script> + <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><style type="text/css"> +<!-- +a { + font-size: 12px; + color: #000; +} +a:link { + text-decoration: none; +} +a:visited { + text-decoration: none; + color: #000; +} +a:hover { + text-decoration: none; + color: #00F; +} +a:active { + text-decoration: none; + color: #000; +} +#msgInputDiv{position:fixed; +bottom:17px; +} + +--> +</style></head> + +<body> +<div id="chatrap"> + $if(user_nick)$ + <div id="msgInputDiv"> + <input id="msgInput" class="msgInput" type="input" /> + <input id="msgSubmit" type="submit" value="Send Image URL" + /> + </div> + $endif$ + </div> + </div> + + + </body> +</html> diff --git a/static/dumpteam.png b/static/dumpteam.png Binary files differindex f879d01..f879d01 100644..100755 --- a/static/dumpteam.png +++ b/static/dumpteam.png diff --git a/static/favicon.ico b/static/favicon.ico Binary files differindex c64876f..6dd74d1 100755 --- a/static/favicon.ico +++ b/static/favicon.ico diff --git a/static/favicon2.ico b/static/favicon2.ico Binary files differnew file mode 100755 index 0000000..c64876f --- /dev/null +++ b/static/favicon2.ico diff --git a/static/gritter/css/jquery.gritter.css b/static/gritter/css/jquery.gritter.css new file mode 100755 index 0000000..0d23e04 --- /dev/null +++ b/static/gritter/css/jquery.gritter.css @@ -0,0 +1,131 @@ +/* ie6 trash */ +* html #gritter-notice-wrapper { + position:absolute; +} +* html .gritter-top { + margin-bottom:-10px; +} +* html .gritter-item { + padding-bottom:0; +} +* html .gritter-bottom { + margin-bottom:0; +} +* html .gritter-close { + background:url(../images/gritter-close-ie6.gif); + width:22px; + height:22px; + top:7px; + + right:7px; +} + +/* the norm */ +#gritter-notice-wrapper { + position:fixed; + top:70px; + right:20px; + width:301px; + + + z-index:9999; +} +#gritter-notice-wrapper img{ + max-width:250px; + width: expression(this.width > 250 ? 250: true); + max-height:240px; + height: expression(this.width > 240 ? 240: true) + right:5px; + + +float:right; + +} +.gritter-item-wrapper { + position:relative; + margin:0 0 5px 0; + + background:url('.'); /* ie7/8 fix */ +} +.gritter-top { + background:url(../images/gritter.png0) no-repeat left -30px; + height:10px; +} +.hover .gritter-top { + background-position:right -30px; +} +.gritter-bottom { + background:url(../images/gritter.png0) no-repeat left bottom; + height:0px; + margin:0; +} +.hover .gritter-bottom { + background-position: bottom right; +} +.gritter-item { + display:block; + background:url(../images/gritter.png0) no-repeat left -40px; +background-color:#eee; + color:#ccc; + height:auto; + padding:7px 15px 11px 11px; + font-size: 11px; +height:auto; + font-family:verdana; + border-top-left-radius:5px; + border-top-right-radius:5px; + -webkit-border-top-left-radius:5px; + -webkit-border-top-right-radius:5px; + -moz-border-radius-topleft:5px; + -moz-border-radius-topright:5px; + border-bottom-left-radius:5px; + border-bottom-right-radius:5px; + -webkit-border-bottom-left-radius:5px; + -webkit-border-bottom-right-radius:5px; + -moz-border-radius-bottomleft:5px; + -moz-border-radius-bottomright:5px; + box-shadow: 5px 7px 10px #c8cbce; +-webkit-box-shadow: 5px 7px 10px #c8cbce; +-moz-box-shadow: 5px 7px 10px #c8cbce; +border:0px solid #999; +} +.hover .gritter-item { + background-position:right -40px; +} +.gritter-item p { + + margin:0; +right:0; + +} +.gritter-close { + position:absolute; + top:5px; + right:3px; + background:url(../images/gritter.png) no-repeat left top; + cursor:pointer; + width:30px; + height:30px; +} +.gritter-title { + font-size:14px; + font-weight:bold; + + + display:block; + text-shadow:-1px -1px #eee; /* Not supported by IE :( */ +} +.gritter-image { + width:48px; + height:48px; + float:right; +right:0px; +} +.gritter-with-image, +.gritter-without-image { + padding:0 0 5px 0; +} +.gritter-with-image { + width:250px; + float:right; +} diff --git a/static/gritter/images/gritter-close-ie6.gif b/static/gritter/images/gritter-close-ie6.gif Binary files differnew file mode 100755 index 0000000..aea6e42 --- /dev/null +++ b/static/gritter/images/gritter-close-ie6.gif diff --git a/static/gritter/images/gritter-long.png b/static/gritter/images/gritter-long.png Binary files differnew file mode 100755 index 0000000..578b891 --- /dev/null +++ b/static/gritter/images/gritter-long.png diff --git a/static/gritter/images/gritter.png b/static/gritter/images/gritter.png Binary files differnew file mode 100755 index 0000000..0ca3bc0 --- /dev/null +++ b/static/gritter/images/gritter.png diff --git a/static/gritter/images/trees.jpg b/static/gritter/images/trees.jpg Binary files differnew file mode 100755 index 0000000..00b2d5d --- /dev/null +++ b/static/gritter/images/trees.jpg diff --git a/static/gritter/js/jquery.gritter.js b/static/gritter/js/jquery.gritter.js new file mode 100755 index 0000000..60305ba --- /dev/null +++ b/static/gritter/js/jquery.gritter.js @@ -0,0 +1,401 @@ +/*
+ * Gritter for jQuery
+ * http://www.boedesign.com/
+ *
+ * Copyright (c) 2009 Jordan Boesch
+ * Dual licensed under the MIT and GPL licenses.
+ *
+ * Date: December 1, 2009
+ * Version: 1.6
+ */
+
+(function($){
+
+ /**
+ * Set it up as an object under the jQuery namespace
+ */
+ $.gritter = {};
+
+ /**
+ * Set up global options that the user can over-ride
+ */
+ $.gritter.options = {
+ fade_in_speed: 'medium', // how fast notifications fade in
+ fade_out_speed: 1000, // how fast the notices fade out
+ time: 2500 // hang on the screen for...
+ }
+
+ /**
+ * Add a gritter notification to the screen
+ * @see Gritter#add();
+ */
+ $.gritter.add = function(params){
+
+ try {
+ return Gritter.add(params || {});
+ } catch(e) {
+
+ var err = 'Gritter Error: ' + e;
+ (typeof(console) != 'undefined' && console.error) ?
+ console.error(err, params) :
+ alert(err);
+
+ }
+
+ }
+
+ /**
+ * Remove a gritter notification from the screen
+ * @see Gritter#removeSpecific();
+ */
+ $.gritter.remove = function(id, params){
+ Gritter.removeSpecific(id, params || {});
+ }
+
+ /**
+ * Remove all notifications
+ * @see Gritter#stop();
+ */
+ $.gritter.removeAll = function(params){
+ Gritter.stop(params || {});
+ }
+
+ /**
+ * Big fat Gritter object
+ * @constructor (not really since it's object literal)
+ */
+ var Gritter = {
+
+ // Public - options to over-ride with $.gritter.options in "add"
+ fade_in_speed: '',
+ fade_out_speed: '',
+ time: '',
+
+ // Private - no touchy the private parts
+ _custom_timer: 0,
+ _item_count: 0,
+ _is_setup: 0,
+ _tpl_close: '<div class="gritter-close"></div>',
+ _tpl_item: '<div id="gritter-item-[[number]]" class="gritter-item-wrapper [[item_class]]" style="display:none"><div class="gritter-top"></div><div class="gritter-item">[[image]]<div class="[[class_name]]"><span class="gritter-title">[[username]]</span><p>[[text]]</p></div><div style="clear:both"></div></div><div class="gritter-bottom"></div></div>',
+ _tpl_wrap: '<div id="gritter-notice-wrapper"></div>',
+
+ /**
+ * Add a gritter notification to the screen
+ * @param {Object} params The object that contains all the options for drawing the notification
+ * @return {Integer} The specific numeric id to that gritter notification
+ */
+ add: function(params){
+
+ // We might have some issues if we don't have a title or text!
+ if(!params.title || !params.text){
+ throw 'You need to fill out the first 2 params: "title" and "text"';
+ }
+
+ // Check the options and set them once
+ if(!this._is_setup){
+ this._runSetup();
+ }
+
+ // Basics
+ var user = params.title,
+ text = params.text,
+ image = params.image || '',
+ sticky = params.sticky || false,
+ item_class = params.class_name || '',
+ time_alive = params.time || '';
+
+ this._verifyWrapper();
+
+ this._item_count++;
+ var number = this._item_count,
+ tmp = this._tpl_item;
+
+ // Assign callbacks
+ $(['before_open', 'after_open', 'before_close', 'after_close']).each(function(i, val){
+ Gritter['_' + val + '_' + number] = ($.isFunction(params[val])) ? params[val] : function(){}
+ });
+
+ // Reset
+ this._custom_timer = 0;
+
+ // A custom fade time set
+ if(time_alive){
+ this._custom_timer = time_alive;
+ }
+
+ var image_str = (image != '') ? '<img src="' + image + '" class="gritter-image" />' : '',
+ class_name = (image != '') ? 'gritter-with-image' : 'gritter-without-image';
+
+ // String replacements on the template
+ tmp = this._str_replace(
+ ['[[username]]', '[[text]]', '[[image]]', '[[number]]', '[[class_name]]', '[[item_class]]'],
+ [user, text, image_str, this._item_count, class_name, item_class], tmp
+ );
+
+ this['_before_open_' + number]();
+ $('#gritter-notice-wrapper').append(tmp);
+
+ var item = $('#gritter-item-' + this._item_count);
+
+ item.fadeIn(this.fade_in_speed, function(){
+ Gritter['_after_open_' + number]($(this));
+ });
+
+ if(!sticky){
+ this._setFadeTimer(item, number);
+ }
+
+ // Bind the hover/unhover states
+ $(item).bind('mouseenter mouseleave', function(event){
+ if(event.type == 'mouseenter'){
+ if(!sticky){
+ Gritter._restoreItemIfFading($(this), number);
+ }
+ }
+ else {
+ if(!sticky){
+ Gritter._setFadeTimer($(this), number);
+ }
+ }
+ Gritter._hoverState($(this), event.type);
+ });
+
+ return number;
+
+ },
+
+ /**
+ * If we don't have any more gritter notifications, get rid of the wrapper using this check
+ * @private
+ * @param {Integer} unique_id The ID of the element that was just deleted, use it for a callback
+ * @param {Object} e The jQuery element that we're going to perform the remove() action on
+ */
+ _countRemoveWrapper: function(unique_id, e){
+
+ // Remove it then run the callback function
+ e.remove();
+ this['_after_close_' + unique_id](e);
+
+ // Check if the wrapper is empty, if it is.. remove the wrapper
+ if($('.gritter-item-wrapper').length == 0){
+ $('#gritter-notice-wrapper').remove();
+ }
+
+ },
+
+ /**
+ * Fade out an element after it's been on the screen for x amount of time
+ * @private
+ * @param {Object} e The jQuery element to get rid of
+ * @param {Integer} unique_id The id of the element to remove
+ * @param {Object} params An optional list of params to set fade speeds etc.
+ * @param {Boolean} unbind_events Unbind the mouseenter/mouseleave events if they click (X)
+ */
+ _fade: function(e, unique_id, params, unbind_events){
+
+ var params = params || {},
+ fade = (typeof(params.fade) != 'undefined') ? params.fade : true;
+ fade_out_speed = params.speed || this.fade_out_speed;
+
+ this['_before_close_' + unique_id](e);
+
+ // If this is true, then we are coming from clicking the (X)
+ if(unbind_events){
+ e.unbind('mouseenter mouseleave');
+ }
+
+ // Fade it out or remove it
+ if(fade){
+
+ e.animate({
+ opacity: 0
+ }, fade_out_speed, function(){
+ e.animate({ height: 0 }, 300, function(){
+ Gritter._countRemoveWrapper(unique_id, e);
+ })
+ })
+
+ }
+ else {
+
+ this._countRemoveWrapper(unique_id, e);
+
+ }
+
+ },
+
+ /**
+ * Perform actions based on the type of bind (mouseenter, mouseleave)
+ * @private
+ * @param {Object} e The jQuery element
+ * @param {String} type The type of action we're performing: mouseenter or mouseleave
+ */
+ _hoverState: function(e, type){
+
+ // Change the border styles and add the (X) close button when you hover
+ if(type == 'mouseenter'){
+
+ e.addClass('hover');
+ var find_img = e.find('img');
+
+ // Insert the close button before what element
+ (find_img.length) ?
+ find_img.before(this._tpl_close) :
+ e.find('span').before(this._tpl_close);
+
+ // Clicking (X) makes the perdy thing close
+ e.find('.gritter-close').click(function(){
+
+ var unique_id = e.attr('id').split('-')[2];
+ Gritter.removeSpecific(unique_id, {}, e, true);
+
+ });
+
+ }
+ // Remove the border styles and (X) close button when you mouse out
+ else {
+
+ e.removeClass('hover');
+ e.find('.gritter-close').remove();
+
+ }
+
+ },
+
+ /**
+ * Remove a specific notification based on an ID
+ * @param {Integer} unique_id The ID used to delete a specific notification
+ * @param {Object} params A set of options passed in to determine how to get rid of it
+ * @param {Object} e The jQuery element that we're "fading" then removing
+ * @param {Boolean} unbind_events If we clicked on the (X) we set this to true to unbind mouseenter/mouseleave
+ */
+ removeSpecific: function(unique_id, params, e, unbind_events){
+
+ if(!e){
+ var e = $('#gritter-item-' + unique_id);
+ }
+
+ // We set the fourth param to let the _fade function know to
+ // unbind the "mouseleave" event. Once you click (X) there's no going back!
+ this._fade(e, unique_id, params || {}, unbind_events);
+
+ },
+
+ /**
+ * If the item is fading out and we hover over it, restore it!
+ * @private
+ * @param {Object} e The HTML element to remove
+ * @param {Integer} unique_id The ID of the element
+ */
+ _restoreItemIfFading: function(e, unique_id){
+
+ clearTimeout(this['_int_id_' + unique_id]);
+ e.stop().css({ opacity: '' });
+
+ },
+
+ /**
+ * Setup the global options - only once
+ * @private
+ */
+ _runSetup: function(){
+
+ for(opt in $.gritter.options){
+ this[opt] = $.gritter.options[opt];
+ }
+ this._is_setup = 1;
+
+ },
+
+ /**
+ * Set the notification to fade out after a certain amount of time
+ * @private
+ * @param {Object} item The HTML element we're dealing with
+ * @param {Integer} unique_id The ID of the element
+ */
+ _setFadeTimer: function(e, unique_id){
+
+ var timer_str = (this._custom_timer) ? this._custom_timer : this.time;
+ this['_int_id_' + unique_id] = setTimeout(function(){
+ Gritter._fade(e, unique_id);
+ }, timer_str);
+
+ },
+
+ /**
+ * Bring everything to a halt
+ * @param {Object} params A list of callback functions to pass when all notifications are removed
+ */
+ stop: function(params){
+
+ // callbacks (if passed)
+ var before_close = ($.isFunction(params.before_close)) ? params.before_close : function(){};
+ var after_close = ($.isFunction(params.after_close)) ? params.after_close : function(){};
+
+ var wrap = $('#gritter-notice-wrapper');
+ before_close(wrap);
+ wrap.fadeOut(function(){
+ $(this).remove();
+ after_close();
+ });
+
+ },
+
+ /**
+ * An extremely handy PHP function ported to JS, works well for templating
+ * @private
+ * @param {String/Array} search A list of things to search for
+ * @param {String/Array} replace A list of things to replace the searches with
+ * @return {String} sa The output
+ */
+ _str_replace: function(search, replace, subject, count){
+
+ var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
+ f = [].concat(search),
+ r = [].concat(replace),
+ s = subject,
+ ra = r instanceof Array, sa = s instanceof Array;
+ s = [].concat(s);
+
+ if(count){
+ this.window[count] = 0;
+ }
+
+ for(i = 0, sl = s.length; i < sl; i++){
+
+ if(s[i] === ''){
+ continue;
+ }
+
+ for (j = 0, fl = f.length; j < fl; j++){
+
+ temp = s[i] + '';
+ repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
+ s[i] = (temp).split(f[j]).join(repl);
+
+ if(count && s[i] !== temp){
+ this.window[count] += (temp.length-s[i].length) / f[j].length;
+ }
+
+ }
+ }
+
+ return sa ? s : s[0];
+
+ },
+
+ /**
+ * A check to make sure we have something to wrap our notices with
+ * @private
+ */
+ _verifyWrapper: function(){
+
+ if($('#gritter-notice-wrapper').length == 0){
+ $('body').append(this._tpl_wrap);
+ }
+
+ }
+
+ }
+
+})(jQuery);
diff --git a/static/gritter/js/jquery.gritter.min.js b/static/gritter/js/jquery.gritter.min.js new file mode 100755 index 0000000..76a307a --- /dev/null +++ b/static/gritter/js/jquery.gritter.min.js @@ -0,0 +1,19 @@ +(function($){$.gritter={};$.gritter.options={fade_in_speed:'medium',fade_out_speed:1000,time:6000} +$.gritter.add=function(params){try{return Gritter.add(params||{});}catch(e){var err='Gritter Error: '+e;(typeof(console)!='undefined'&&console.error)?console.error(err,params):alert(err);}} +$.gritter.remove=function(id,params){Gritter.removeSpecific(id,params||{});} +$.gritter.removeAll=function(params){Gritter.stop(params||{});} +var Gritter={fade_in_speed:'',fade_out_speed:'',time:'',_custom_timer:0,_item_count:0,_is_setup:0,_tpl_close:'<div class="gritter-close"></div>',_tpl_item:'<div id="gritter-item-[[number]]" class="gritter-item-wrapper [[item_class]]" style="display:none"><div class="gritter-top"></div><div class="gritter-item">[[image]]<div class="[[class_name]]"><span class="gritter-title">[[username]]</span><p>[[text]]</p></div><div style="clear:both"></div></div><div class="gritter-bottom"></div></div>',_tpl_wrap:'<div id="gritter-notice-wrapper"></div>',add:function(params){if(!params.title||!params.text){throw'You need to fill out the first 2 params: "title" and "text"';} +if(!this._is_setup){this._runSetup();} +var user=params.title,text=params.text,image=params.image||'',sticky=params.sticky||false,item_class=params.class_name||'',time_alive=params.time||'';this._verifyWrapper();this._item_count++;var number=this._item_count,tmp=this._tpl_item;$(['before_open','after_open','before_close','after_close']).each(function(i,val){Gritter['_'+val+'_'+number]=($.isFunction(params[val]))?params[val]:function(){}});this._custom_timer=0;if(time_alive){this._custom_timer=time_alive;} +var image_str=(image!='')?'<img src="'+image+'" class="gritter-image" />':'',class_name=(image!='')?'gritter-with-image':'gritter-without-image';tmp=this._str_replace(['[[username]]','[[text]]','[[image]]','[[number]]','[[class_name]]','[[item_class]]'],[user,text,image_str,this._item_count,class_name,item_class],tmp);this['_before_open_'+number]();$('#gritter-notice-wrapper').append(tmp);var item=$('#gritter-item-'+this._item_count);item.fadeIn(this.fade_in_speed,function(){Gritter['_after_open_'+number]($(this));});if(!sticky){this._setFadeTimer(item,number);} +$(item).bind('mouseenter mouseleave',function(event){if(event.type=='mouseenter'){if(!sticky){Gritter._restoreItemIfFading($(this),number);}} +else{if(!sticky){Gritter._setFadeTimer($(this),number);}} +Gritter._hoverState($(this),event.type);});return number;},_countRemoveWrapper:function(unique_id,e){e.remove();this['_after_close_'+unique_id](e);if($('.gritter-item-wrapper').length==0){$('#gritter-notice-wrapper').remove();}},_fade:function(e,unique_id,params,unbind_events){var params=params||{},fade=(typeof(params.fade)!='undefined')?params.fade:true;fade_out_speed=params.speed||this.fade_out_speed;this['_before_close_'+unique_id](e);if(unbind_events){e.unbind('mouseenter mouseleave');} +if(fade){e.animate({opacity:0},fade_out_speed,function(){e.animate({height:0},300,function(){Gritter._countRemoveWrapper(unique_id,e);})})} +else{this._countRemoveWrapper(unique_id,e);}},_hoverState:function(e,type){if(type=='mouseenter'){e.addClass('hover');var find_img=e.find('img');(find_img.length)?find_img.before(this._tpl_close):e.find('span').before(this._tpl_close);e.find('.gritter-close').click(function(){var unique_id=e.attr('id').split('-')[2];Gritter.removeSpecific(unique_id,{},e,true);});} +else{e.removeClass('hover');e.find('.gritter-close').remove();}},removeSpecific:function(unique_id,params,e,unbind_events){if(!e){var e=$('#gritter-item-'+unique_id);} +this._fade(e,unique_id,params||{},unbind_events);},_restoreItemIfFading:function(e,unique_id){clearTimeout(this['_int_id_'+unique_id]);e.stop().css({opacity:''});},_runSetup:function(){for(opt in $.gritter.options){this[opt]=$.gritter.options[opt];} +this._is_setup=1;},_setFadeTimer:function(e,unique_id){var timer_str=(this._custom_timer)?this._custom_timer:this.time;this['_int_id_'+unique_id]=setTimeout(function(){Gritter._fade(e,unique_id);},timer_str);},stop:function(params){var before_close=($.isFunction(params.before_close))?params.before_close:function(){};var after_close=($.isFunction(params.after_close))?params.after_close:function(){};var wrap=$('#gritter-notice-wrapper');before_close(wrap);wrap.fadeOut(function(){$(this).remove();after_close();});},_str_replace:function(search,replace,subject,count){var i=0,j=0,temp='',repl='',sl=0,fl=0,f=[].concat(search),r=[].concat(replace),s=subject,ra=r instanceof Array,sa=s instanceof Array;s=[].concat(s);if(count){this.window[count]=0;} +for(i=0,sl=s.length;i<sl;i++){if(s[i]===''){continue;} +for(j=0,fl=f.length;j<fl;j++){temp=s[i]+'';repl=ra?(r[j]!==undefined?r[j]:''):r[0];s[i]=(temp).split(f[j]).join(repl);if(count&&s[i]!==temp){this.window[count]+=(temp.length-s[i].length)/f[j].length;}}} +return sa?s:s[0];},_verifyWrapper:function(){if($('#gritter-notice-wrapper').length==0){$('body').append(this._tpl_wrap);}}}})(jQuery);
\ No newline at end of file diff --git a/static/header.css b/static/header.css index c32510c..4b03c2c 100644..100755 --- a/static/header.css +++ b/static/header.css @@ -13,9 +13,10 @@ text-decoration: none; text-shadow: -1px 1px 1px #; background-color:#036aca; - height:60px; +background-color: cornflowerblue; + - bottom:0px; + box-shadow: 3px 2px 2px #036aca; -webkit-box-shadow: 3px 2px 2px #036aca; -moz-box-shadow: 3px 2px 2px #036aca; @@ -38,15 +39,15 @@ filter: progid:DXImageTransform.Microsoft.dropShadow(color=#036aca, offX=3, offY position:fixed; width:100%; left: 0px; - height: 69px; + } #bar7{ - top:30px; + top:28px; position:absolute; font-family: Arial, Helvetica, sans-serif; - width: 500px; + font-size: 18px; - left: 150px; + left: 170px; margin-left: 2%; margin-right: 8%; letter-spacing: -1px; @@ -256,3 +257,111 @@ body { z-index:0; } + +/* CSS Document */ +#menuh-container + { + position: absolute; +top:-0; +left:10; +width:auto; + } + +#menuh + { +width:auto; + } + +#menuh a + { + text-align: center; + + + + margin:0; + + } + +#menuh a:link, #menuh a:visited, #menuh a:active /* menu at rest */ + { + color: white; + + text-decoration:none; + } + +#menuh a:hover /* menu on mouse-over */ + { + color: white; + background-color: cornflowerblue; + text-decoration:none; + } + +#menuh a.top_parent, #menuh a.top_parent:hover /* attaches down-arrow to all top-parents */ + { + + background-position: right center; +width:;0; + background-repeat: no-repeat; + } + +#menuh a.parent, #menuh a.parent:hover /* attaches side-arrow to all parents */ + { + background-image: url(/static/nav_white.gif); + background-position: right center; + background-repeat: no-repeat; + } + +#menuh ul + { + + + width:9em; /* width of all menu boxes */ + /* NOTE: For adjustable menu boxes you can comment out the above width rule. + However, you will have to add padding in the "#menh a" rule so that the menu boxes + will have space on either side of the text -- try it */ + } + +#menuh li + { + position:relative; + /* Sophie Dennis contribution for IE7 */ + vertical-align: bottom; /* Sophie Dennis contribution for IE7 */ + + } + +#menuh ul ul + { + + + top:auto; + display:none; + padding: 1em; + margin:-15 -3 -3em; + + } + +#menuh ul ul ul + { + top:0; + left:100%; + } + +div#menuh li:hover + { + cursor:pointer; + z-index:100; + } + +div#menuh li:hover ul ul, +div#menuh li li:hover ul ul, +div#menuh li li li:hover ul ul, +div#menuh li li li li:hover ul ul +{display:none;} + +div#menuh li:hover ul, +div#menuh li li:hover ul, +div#menuh li li li:hover ul, +div#menuh li li li li:hover ul +{display:block;} + +/* End CSS Drop Down Menu */ diff --git a/static/images-global/zoom/closebox.png b/static/images-global/zoom/closebox.png Binary files differnew file mode 100755 index 0000000..4de4396 --- /dev/null +++ b/static/images-global/zoom/closebox.png diff --git a/static/images-global/zoom/spacer.gif b/static/images-global/zoom/spacer.gif Binary files differnew file mode 100755 index 0000000..5bfd67a --- /dev/null +++ b/static/images-global/zoom/spacer.gif diff --git a/static/images-global/zoom/zoom-caption-fill.png b/static/images-global/zoom/zoom-caption-fill.png Binary files differnew file mode 100755 index 0000000..1e34153 --- /dev/null +++ b/static/images-global/zoom/zoom-caption-fill.png diff --git a/static/images-global/zoom/zoom-caption-l.png b/static/images-global/zoom/zoom-caption-l.png Binary files differnew file mode 100755 index 0000000..a63ea48 --- /dev/null +++ b/static/images-global/zoom/zoom-caption-l.png diff --git a/static/images-global/zoom/zoom-caption-r.png b/static/images-global/zoom/zoom-caption-r.png Binary files differnew file mode 100755 index 0000000..15980d5 --- /dev/null +++ b/static/images-global/zoom/zoom-caption-r.png diff --git a/static/images-global/zoom/zoom-shadow1.png b/static/images-global/zoom/zoom-shadow1.png Binary files differnew file mode 100755 index 0000000..8b48000 --- /dev/null +++ b/static/images-global/zoom/zoom-shadow1.png diff --git a/static/images-global/zoom/zoom-shadow2.png b/static/images-global/zoom/zoom-shadow2.png Binary files differnew file mode 100755 index 0000000..09209f3 --- /dev/null +++ b/static/images-global/zoom/zoom-shadow2.png diff --git a/static/images-global/zoom/zoom-shadow3.png b/static/images-global/zoom/zoom-shadow3.png Binary files differnew file mode 100755 index 0000000..7636fec --- /dev/null +++ b/static/images-global/zoom/zoom-shadow3.png diff --git a/static/images-global/zoom/zoom-shadow4.png b/static/images-global/zoom/zoom-shadow4.png Binary files differnew file mode 100755 index 0000000..c7f148d --- /dev/null +++ b/static/images-global/zoom/zoom-shadow4.png diff --git a/static/images-global/zoom/zoom-shadow5.png b/static/images-global/zoom/zoom-shadow5.png Binary files differnew file mode 100755 index 0000000..2a75b82 --- /dev/null +++ b/static/images-global/zoom/zoom-shadow5.png diff --git a/static/images-global/zoom/zoom-shadow6.png b/static/images-global/zoom/zoom-shadow6.png Binary files differnew file mode 100755 index 0000000..65801aa --- /dev/null +++ b/static/images-global/zoom/zoom-shadow6.png diff --git a/static/images-global/zoom/zoom-shadow7.png b/static/images-global/zoom/zoom-shadow7.png Binary files differnew file mode 100755 index 0000000..cb44760 --- /dev/null +++ b/static/images-global/zoom/zoom-shadow7.png diff --git a/static/images-global/zoom/zoom-shadow8.png b/static/images-global/zoom/zoom-shadow8.png Binary files differnew file mode 100755 index 0000000..f1c6acd --- /dev/null +++ b/static/images-global/zoom/zoom-shadow8.png diff --git a/static/images-global/zoom/zoom-spin-1.png b/static/images-global/zoom/zoom-spin-1.png Binary files differnew file mode 100755 index 0000000..5615629 --- /dev/null +++ b/static/images-global/zoom/zoom-spin-1.png diff --git a/static/images-global/zoom/zoom-spin-10.png b/static/images-global/zoom/zoom-spin-10.png Binary files differnew file mode 100755 index 0000000..77595db --- /dev/null +++ b/static/images-global/zoom/zoom-spin-10.png diff --git a/static/images-global/zoom/zoom-spin-11.png b/static/images-global/zoom/zoom-spin-11.png Binary files differnew file mode 100755 index 0000000..c2147d5 --- /dev/null +++ b/static/images-global/zoom/zoom-spin-11.png diff --git a/static/images-global/zoom/zoom-spin-12.png b/static/images-global/zoom/zoom-spin-12.png Binary files differnew file mode 100755 index 0000000..cf02724 --- /dev/null +++ b/static/images-global/zoom/zoom-spin-12.png diff --git a/static/images-global/zoom/zoom-spin-2.png b/static/images-global/zoom/zoom-spin-2.png Binary files differnew file mode 100755 index 0000000..95eaae8 --- /dev/null +++ b/static/images-global/zoom/zoom-spin-2.png diff --git a/static/images-global/zoom/zoom-spin-3.png b/static/images-global/zoom/zoom-spin-3.png Binary files differnew file mode 100755 index 0000000..9e2b9cb --- /dev/null +++ b/static/images-global/zoom/zoom-spin-3.png diff --git a/static/images-global/zoom/zoom-spin-4.png b/static/images-global/zoom/zoom-spin-4.png Binary files differnew file mode 100755 index 0000000..a39c0fc --- /dev/null +++ b/static/images-global/zoom/zoom-spin-4.png diff --git a/static/images-global/zoom/zoom-spin-5.png b/static/images-global/zoom/zoom-spin-5.png Binary files differnew file mode 100755 index 0000000..80bea63 --- /dev/null +++ b/static/images-global/zoom/zoom-spin-5.png diff --git a/static/images-global/zoom/zoom-spin-6.png b/static/images-global/zoom/zoom-spin-6.png Binary files differnew file mode 100755 index 0000000..b962e5f --- /dev/null +++ b/static/images-global/zoom/zoom-spin-6.png diff --git a/static/images-global/zoom/zoom-spin-7.png b/static/images-global/zoom/zoom-spin-7.png Binary files differnew file mode 100755 index 0000000..9b6e489 --- /dev/null +++ b/static/images-global/zoom/zoom-spin-7.png diff --git a/static/images-global/zoom/zoom-spin-8.png b/static/images-global/zoom/zoom-spin-8.png Binary files differnew file mode 100755 index 0000000..fe147d5 --- /dev/null +++ b/static/images-global/zoom/zoom-spin-8.png diff --git a/static/images-global/zoom/zoom-spin-9.png b/static/images-global/zoom/zoom-spin-9.png Binary files differnew file mode 100755 index 0000000..b321b1c --- /dev/null +++ b/static/images-global/zoom/zoom-spin-9.png diff --git a/static/jquery-1.3.2.min.js b/static/jquery-1.3.2.min.js index b1ae21d..b1ae21d 100644..100755 --- a/static/jquery-1.3.2.min.js +++ b/static/jquery-1.3.2.min.js diff --git a/static/jquery.gritter.js b/static/jquery.gritter.js new file mode 100755 index 0000000..b915b9e --- /dev/null +++ b/static/jquery.gritter.js @@ -0,0 +1,401 @@ +/*
+ * Gritter for jQuery
+ * http://www.boedesign.com/
+ *
+ * Copyright (c) 2009 Jordan Boesch
+ * Dual licensed under the MIT and GPL licenses.
+ *
+ * Date: December 1, 2009
+ * Version: 1.6
+ */
+
+(function($){
+
+ /**
+ * Set it up as an object under the jQuery namespace
+ */
+ $.gritter = {};
+
+ /**
+ * Set up global options that the user can over-ride
+ */
+ $.gritter.options = {
+ fade_in_speed: 'medium', // how fast notifications fade in
+ fade_out_speed: 1000, // how fast the notices fade out
+ time: 6000 // hang on the screen for...
+ }
+
+ /**
+ * Add a gritter notification to the screen
+ * @see Gritter#add();
+ */
+ $.gritter.add = function(params){
+
+ try {
+ return Gritter.add(params || {});
+ } catch(e) {
+
+ var err = 'Gritter Error: ' + e;
+ (typeof(console) != 'undefined' && console.error) ?
+ console.error(err, params) :
+ alert(err);
+
+ }
+
+ }
+
+ /**
+ * Remove a gritter notification from the screen
+ * @see Gritter#removeSpecific();
+ */
+ $.gritter.remove = function(id, params){
+ Gritter.removeSpecific(id, params || {});
+ }
+
+ /**
+ * Remove all notifications
+ * @see Gritter#stop();
+ */
+ $.gritter.removeAll = function(params){
+ Gritter.stop(params || {});
+ }
+
+ /**
+ * Big fat Gritter object
+ * @constructor (not really since it's object literal)
+ */
+ var Gritter = {
+
+ // Public - options to over-ride with $.gritter.options in "add"
+ fade_in_speed: '',
+ fade_out_speed: '',
+ time: '',
+
+ // Private - no touchy the private parts
+ _custom_timer: 0,
+ _item_count: 0,
+ _is_setup: 0,
+ _tpl_close: '<div class="gritter-close"></div>',
+ _tpl_item: '<div id="gritter-item-[[number]]" class="gritter-item-wrapper [[item_class]]" style="display:none"><div class="gritter-top"></div><div class="gritter-item">[[image]]<div class="[[class_name]]"><span class="gritter-title">[[username]]</span><p>[[text]]</p></div><div style="clear:both"></div></div><div class="gritter-bottom"></div></div>',
+ _tpl_wrap: '<div id="gritter-notice-wrapper"></div>',
+
+ /**
+ * Add a gritter notification to the screen
+ * @param {Object} params The object that contains all the options for drawing the notification
+ * @return {Integer} The specific numeric id to that gritter notification
+ */
+ add: function(params){
+
+ // We might have some issues if we don't have a title or text!
+ if(!params.title || !params.text){
+ throw 'You need to fill out the first 2 params: "title" and "text"';
+ }
+
+ // Check the options and set them once
+ if(!this._is_setup){
+ this._runSetup();
+ }
+
+ // Basics
+ var user = params.title,
+ text = params.text,
+ image = params.image || '',
+ sticky = params.sticky || false,
+ item_class = params.class_name || '',
+ time_alive = params.time || '';
+
+ this._verifyWrapper();
+
+ this._item_count++;
+ var number = this._item_count,
+ tmp = this._tpl_item;
+
+ // Assign callbacks
+ $(['before_open', 'after_open', 'before_close', 'after_close']).each(function(i, val){
+ Gritter['_' + val + '_' + number] = ($.isFunction(params[val])) ? params[val] : function(){}
+ });
+
+ // Reset
+ this._custom_timer = 0;
+
+ // A custom fade time set
+ if(time_alive){
+ this._custom_timer = time_alive;
+ }
+
+ var image_str = (image != '') ? '<img src="' + image + '" class="gritter-image" />' : '',
+ class_name = (image != '') ? 'gritter-with-image' : 'gritter-without-image';
+
+ // String replacements on the template
+ tmp = this._str_replace(
+ ['[[username]]', '[[text]]', '[[image]]', '[[number]]', '[[class_name]]', '[[item_class]]'],
+ [user, text, image_str, this._item_count, class_name, item_class], tmp
+ );
+
+ this['_before_open_' + number]();
+ $('#gritter-notice-wrapper').append(tmp);
+
+ var item = $('#gritter-item-' + this._item_count);
+
+ item.fadeIn(this.fade_in_speed, function(){
+ Gritter['_after_open_' + number]($(this));
+ });
+
+ if(!sticky){
+ this._setFadeTimer(item, number);
+ }
+
+ // Bind the hover/unhover states
+ $(item).bind('mouseenter mouseleave', function(event){
+ if(event.type == 'mouseenter'){
+ if(!sticky){
+ Gritter._restoreItemIfFading($(this), number);
+ }
+ }
+ else {
+ if(!sticky){
+ Gritter._setFadeTimer($(this), number);
+ }
+ }
+ Gritter._hoverState($(this), event.type);
+ });
+
+ return number;
+
+ },
+
+ /**
+ * If we don't have any more gritter notifications, get rid of the wrapper using this check
+ * @private
+ * @param {Integer} unique_id The ID of the element that was just deleted, use it for a callback
+ * @param {Object} e The jQuery element that we're going to perform the remove() action on
+ */
+ _countRemoveWrapper: function(unique_id, e){
+
+ // Remove it then run the callback function
+ e.remove();
+ this['_after_close_' + unique_id](e);
+
+ // Check if the wrapper is empty, if it is.. remove the wrapper
+ if($('.gritter-item-wrapper').length == 0){
+ $('#gritter-notice-wrapper').remove();
+ }
+
+ },
+
+ /**
+ * Fade out an element after it's been on the screen for x amount of time
+ * @private
+ * @param {Object} e The jQuery element to get rid of
+ * @param {Integer} unique_id The id of the element to remove
+ * @param {Object} params An optional list of params to set fade speeds etc.
+ * @param {Boolean} unbind_events Unbind the mouseenter/mouseleave events if they click (X)
+ */
+ _fade: function(e, unique_id, params, unbind_events){
+
+ var params = params || {},
+ fade = (typeof(params.fade) != 'undefined') ? params.fade : true;
+ fade_out_speed = params.speed || this.fade_out_speed;
+
+ this['_before_close_' + unique_id](e);
+
+ // If this is true, then we are coming from clicking the (X)
+ if(unbind_events){
+ e.unbind('mouseenter mouseleave');
+ }
+
+ // Fade it out or remove it
+ if(fade){
+
+ e.animate({
+ opacity: 0
+ }, fade_out_speed, function(){
+ e.animate({ height: 0 }, 300, function(){
+ Gritter._countRemoveWrapper(unique_id, e);
+ })
+ })
+
+ }
+ else {
+
+ this._countRemoveWrapper(unique_id, e);
+
+ }
+
+ },
+
+ /**
+ * Perform actions based on the type of bind (mouseenter, mouseleave)
+ * @private
+ * @param {Object} e The jQuery element
+ * @param {String} type The type of action we're performing: mouseenter or mouseleave
+ */
+ _hoverState: function(e, type){
+
+ // Change the border styles and add the (X) close button when you hover
+ if(type == 'mouseenter'){
+
+ e.addClass('hover');
+ var find_img = e.find('img');
+
+ // Insert the close button before what element
+ (find_img.length) ?
+ find_img.before(this._tpl_close) :
+ e.find('span').before(this._tpl_close);
+
+ // Clicking (X) makes the perdy thing close
+ e.find('.gritter-close').click(function(){
+
+ var unique_id = e.attr('id').split('-')[2];
+ Gritter.removeSpecific(unique_id, {}, e, true);
+
+ });
+
+ }
+ // Remove the border styles and (X) close button when you mouse out
+ else {
+
+ e.removeClass('hover');
+ e.find('.gritter-close').remove();
+
+ }
+
+ },
+
+ /**
+ * Remove a specific notification based on an ID
+ * @param {Integer} unique_id The ID used to delete a specific notification
+ * @param {Object} params A set of options passed in to determine how to get rid of it
+ * @param {Object} e The jQuery element that we're "fading" then removing
+ * @param {Boolean} unbind_events If we clicked on the (X) we set this to true to unbind mouseenter/mouseleave
+ */
+ removeSpecific: function(unique_id, params, e, unbind_events){
+
+ if(!e){
+ var e = $('#gritter-item-' + unique_id);
+ }
+
+ // We set the fourth param to let the _fade function know to
+ // unbind the "mouseleave" event. Once you click (X) there's no going back!
+ this._fade(e, unique_id, params || {}, unbind_events);
+
+ },
+
+ /**
+ * If the item is fading out and we hover over it, restore it!
+ * @private
+ * @param {Object} e The HTML element to remove
+ * @param {Integer} unique_id The ID of the element
+ */
+ _restoreItemIfFading: function(e, unique_id){
+
+ clearTimeout(this['_int_id_' + unique_id]);
+ e.stop().css({ opacity: '' });
+
+ },
+
+ /**
+ * Setup the global options - only once
+ * @private
+ */
+ _runSetup: function(){
+
+ for(opt in $.gritter.options){
+ this[opt] = $.gritter.options[opt];
+ }
+ this._is_setup = 1;
+
+ },
+
+ /**
+ * Set the notification to fade out after a certain amount of time
+ * @private
+ * @param {Object} item The HTML element we're dealing with
+ * @param {Integer} unique_id The ID of the element
+ */
+ _setFadeTimer: function(e, unique_id){
+
+ var timer_str = (this._custom_timer) ? this._custom_timer : this.time;
+ this['_int_id_' + unique_id] = setTimeout(function(){
+ Gritter._fade(e, unique_id);
+ }, timer_str);
+
+ },
+
+ /**
+ * Bring everything to a halt
+ * @param {Object} params A list of callback functions to pass when all notifications are removed
+ */
+ stop: function(params){
+
+ // callbacks (if passed)
+ var before_close = ($.isFunction(params.before_close)) ? params.before_close : function(){};
+ var after_close = ($.isFunction(params.after_close)) ? params.after_close : function(){};
+
+ var wrap = $('#gritter-notice-wrapper');
+ before_close(wrap);
+ wrap.fadeOut(function(){
+ $(this).remove();
+ after_close();
+ });
+
+ },
+
+ /**
+ * An extremely handy PHP function ported to JS, works well for templating
+ * @private
+ * @param {String/Array} search A list of things to search for
+ * @param {String/Array} replace A list of things to replace the searches with
+ * @return {String} sa The output
+ */
+ _str_replace: function(search, replace, subject, count){
+
+ var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0,
+ f = [].concat(search),
+ r = [].concat(replace),
+ s = subject,
+ ra = r instanceof Array, sa = s instanceof Array;
+ s = [].concat(s);
+
+ if(count){
+ this.window[count] = 0;
+ }
+
+ for(i = 0, sl = s.length; i < sl; i++){
+
+ if(s[i] === ''){
+ continue;
+ }
+
+ for (j = 0, fl = f.length; j < fl; j++){
+
+ temp = s[i] + '';
+ repl = ra ? (r[j] !== undefined ? r[j] : '') : r[0];
+ s[i] = (temp).split(f[j]).join(repl);
+
+ if(count && s[i] !== temp){
+ this.window[count] += (temp.length-s[i].length) / f[j].length;
+ }
+
+ }
+ }
+
+ return sa ? s : s[0];
+
+ },
+
+ /**
+ * A check to make sure we have something to wrap our notices with
+ * @private
+ */
+ _verifyWrapper: function(){
+
+ if($('#gritter-notice-wrapper').length == 0){
+ $('body').append(this._tpl_wrap);
+ }
+
+ }
+
+ }
+
+})(jQuery);
diff --git a/static/jquery.gritter.min.js b/static/jquery.gritter.min.js new file mode 100755 index 0000000..76a307a --- /dev/null +++ b/static/jquery.gritter.min.js @@ -0,0 +1,19 @@ +(function($){$.gritter={};$.gritter.options={fade_in_speed:'medium',fade_out_speed:1000,time:6000} +$.gritter.add=function(params){try{return Gritter.add(params||{});}catch(e){var err='Gritter Error: '+e;(typeof(console)!='undefined'&&console.error)?console.error(err,params):alert(err);}} +$.gritter.remove=function(id,params){Gritter.removeSpecific(id,params||{});} +$.gritter.removeAll=function(params){Gritter.stop(params||{});} +var Gritter={fade_in_speed:'',fade_out_speed:'',time:'',_custom_timer:0,_item_count:0,_is_setup:0,_tpl_close:'<div class="gritter-close"></div>',_tpl_item:'<div id="gritter-item-[[number]]" class="gritter-item-wrapper [[item_class]]" style="display:none"><div class="gritter-top"></div><div class="gritter-item">[[image]]<div class="[[class_name]]"><span class="gritter-title">[[username]]</span><p>[[text]]</p></div><div style="clear:both"></div></div><div class="gritter-bottom"></div></div>',_tpl_wrap:'<div id="gritter-notice-wrapper"></div>',add:function(params){if(!params.title||!params.text){throw'You need to fill out the first 2 params: "title" and "text"';} +if(!this._is_setup){this._runSetup();} +var user=params.title,text=params.text,image=params.image||'',sticky=params.sticky||false,item_class=params.class_name||'',time_alive=params.time||'';this._verifyWrapper();this._item_count++;var number=this._item_count,tmp=this._tpl_item;$(['before_open','after_open','before_close','after_close']).each(function(i,val){Gritter['_'+val+'_'+number]=($.isFunction(params[val]))?params[val]:function(){}});this._custom_timer=0;if(time_alive){this._custom_timer=time_alive;} +var image_str=(image!='')?'<img src="'+image+'" class="gritter-image" />':'',class_name=(image!='')?'gritter-with-image':'gritter-without-image';tmp=this._str_replace(['[[username]]','[[text]]','[[image]]','[[number]]','[[class_name]]','[[item_class]]'],[user,text,image_str,this._item_count,class_name,item_class],tmp);this['_before_open_'+number]();$('#gritter-notice-wrapper').append(tmp);var item=$('#gritter-item-'+this._item_count);item.fadeIn(this.fade_in_speed,function(){Gritter['_after_open_'+number]($(this));});if(!sticky){this._setFadeTimer(item,number);} +$(item).bind('mouseenter mouseleave',function(event){if(event.type=='mouseenter'){if(!sticky){Gritter._restoreItemIfFading($(this),number);}} +else{if(!sticky){Gritter._setFadeTimer($(this),number);}} +Gritter._hoverState($(this),event.type);});return number;},_countRemoveWrapper:function(unique_id,e){e.remove();this['_after_close_'+unique_id](e);if($('.gritter-item-wrapper').length==0){$('#gritter-notice-wrapper').remove();}},_fade:function(e,unique_id,params,unbind_events){var params=params||{},fade=(typeof(params.fade)!='undefined')?params.fade:true;fade_out_speed=params.speed||this.fade_out_speed;this['_before_close_'+unique_id](e);if(unbind_events){e.unbind('mouseenter mouseleave');} +if(fade){e.animate({opacity:0},fade_out_speed,function(){e.animate({height:0},300,function(){Gritter._countRemoveWrapper(unique_id,e);})})} +else{this._countRemoveWrapper(unique_id,e);}},_hoverState:function(e,type){if(type=='mouseenter'){e.addClass('hover');var find_img=e.find('img');(find_img.length)?find_img.before(this._tpl_close):e.find('span').before(this._tpl_close);e.find('.gritter-close').click(function(){var unique_id=e.attr('id').split('-')[2];Gritter.removeSpecific(unique_id,{},e,true);});} +else{e.removeClass('hover');e.find('.gritter-close').remove();}},removeSpecific:function(unique_id,params,e,unbind_events){if(!e){var e=$('#gritter-item-'+unique_id);} +this._fade(e,unique_id,params||{},unbind_events);},_restoreItemIfFading:function(e,unique_id){clearTimeout(this['_int_id_'+unique_id]);e.stop().css({opacity:''});},_runSetup:function(){for(opt in $.gritter.options){this[opt]=$.gritter.options[opt];} +this._is_setup=1;},_setFadeTimer:function(e,unique_id){var timer_str=(this._custom_timer)?this._custom_timer:this.time;this['_int_id_'+unique_id]=setTimeout(function(){Gritter._fade(e,unique_id);},timer_str);},stop:function(params){var before_close=($.isFunction(params.before_close))?params.before_close:function(){};var after_close=($.isFunction(params.after_close))?params.after_close:function(){};var wrap=$('#gritter-notice-wrapper');before_close(wrap);wrap.fadeOut(function(){$(this).remove();after_close();});},_str_replace:function(search,replace,subject,count){var i=0,j=0,temp='',repl='',sl=0,fl=0,f=[].concat(search),r=[].concat(replace),s=subject,ra=r instanceof Array,sa=s instanceof Array;s=[].concat(s);if(count){this.window[count]=0;} +for(i=0,sl=s.length;i<sl;i++){if(s[i]===''){continue;} +for(j=0,fl=f.length;j<fl;j++){temp=s[i]+'';repl=ra?(r[j]!==undefined?r[j]:''):r[0];s[i]=(temp).split(f[j]).join(repl);if(count&&s[i]!==temp){this.window[count]+=(temp.length-s[i].length)/f[j].length;}}} +return sa?s:s[0];},_verifyWrapper:function(){if($('#gritter-notice-wrapper').length==0){$('body').append(this._tpl_wrap);}}}})(jQuery);
\ No newline at end of file diff --git a/static/js-global/FancyZoom.js b/static/js-global/FancyZoom.js new file mode 100755 index 0000000..42d71ce --- /dev/null +++ b/static/js-global/FancyZoom.js @@ -0,0 +1,761 @@ +// FancyZoom.js - v1.1 - http://www.fancyzoom.com +// +// Copyright (c) 2008 Cabel Sasser / Panic Inc +// All rights reserved. +// +// Requires: FancyZoomHTML.js +// Instructions: Include JS files in page, call setupZoom() in onLoad. That's it! +// Any <a href> links to images will be updated to zoom inline. +// Add rel="nozoom" to your <a href> to disable zooming for an image. +// +// Redistribution and use of this effect in source form, with or without modification, +// are permitted provided that the following conditions are met: +// +// * USE OF SOURCE ON COMMERCIAL (FOR-PROFIT) WEBSITE REQUIRES ONE-TIME LICENSE FEE PER DOMAIN. +// Reasonably priced! Visit www.fancyzoom.com for licensing instructions. Thanks! +// +// * Non-commercial (personal) website use is permitted without license/payment! +// +// * Redistribution of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// +// * Redistribution of source code and derived works cannot be sold without specific +// written prior permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +var includeCaption = true; // Turn on the "caption" feature, and write out the caption HTML +var zoomTime = 5; // Milliseconds between frames of zoom animation +var zoomSteps = 15; // Number of zoom animation frames +var includeFade = 1; // Set to 1 to fade the image in / out as it zooms +var minBorder = 90; // Amount of padding between large, scaled down images, and the window edges +var shadowSettings = '0px 5px 25px rgba(0, 0, 0, '; // Blur, radius, color of shadow for compatible browsers + +var zoomImagesURI = '/images-global/zoom/'; // Location of the zoom and shadow images + +// Init. Do not add anything below this line, unless it's something awesome. + +var myWidth = 0, myHeight = 0, myScroll = 0; myScrollWidth = 0; myScrollHeight = 0; +var zoomOpen = false, preloadFrame = 1, preloadActive = false, preloadTime = 0, imgPreload = new Image(); +var preloadAnimTimer = 0; + +var zoomActive = new Array(); var zoomTimer = new Array(); +var zoomOrigW = new Array(); var zoomOrigH = new Array(); +var zoomOrigX = new Array(); var zoomOrigY = new Array(); + +var zoomID = "ZoomBox"; +var theID = "ZoomImage"; +var zoomCaption = "ZoomCaption"; +var zoomCaptionDiv = "ZoomCapDiv"; + +if (navigator.userAgent.indexOf("MSIE") != -1) { + var browserIsIE = true; +} + +// Zoom: Setup The Page! Called in your <body>'s onLoad handler. + +function setupZoom() { + prepZooms(); + insertZoomHTML(); + zoomdiv = document.getElementById(zoomID); + zoomimg = document.getElementById(theID); +} + +// Zoom: Inject Javascript functions into hrefs pointing to images, one by one! +// Skip any href that contains a rel="nozoom" tag. +// This is done at page load time via an onLoad() handler. + +function prepZooms() { + if (! document.getElementsByTagName) { + return; + } + var links = document.getElementsByTagName("a"); + for (i = 0; i < links.length; i++) { + if (links[i].getAttribute("href")) { + if (links[i].getAttribute("href").search(/(.*)\.(jpg|jpeg|gif|png|bmp|tif|tiff)/gi) != -1) { + if (links[i].getAttribute("rel") != "nozoom") { + links[i].onclick = function (event) { return zoomClick(this, event); }; + links[i].onmouseover = function () { zoomPreload(this); }; + } + } + } + } +} + +// Zoom: Load an image into an image object. When done loading, function sets preloadActive to false, +// so other bits know that they can proceed with the zoom. +// Preloaded image is stored in imgPreload and swapped out in the zoom function. + +function zoomPreload(from) { + + var theimage = from.getAttribute("href"); + + // Only preload if we have to, i.e. the image isn't this image already + + if (imgPreload.src.indexOf(from.getAttribute("href").substr(from.getAttribute("href").lastIndexOf("/"))) == -1) { + preloadActive = true; + imgPreload = new Image(); + + // Set a function to fire when the preload is complete, setting flags along the way. + + imgPreload.onload = function() { + preloadActive = false; + } + + // Load it! + imgPreload.src = theimage; + } +} + +// Zoom: Start the preloading animation cycle. + +function preloadAnimStart() { + preloadTime = new Date(); + document.getElementById("ZoomSpin").style.left = (myWidth / 2) + 'px'; + document.getElementById("ZoomSpin").style.top = ((myHeight / 2) + myScroll) + 'px'; + document.getElementById("ZoomSpin").style.visibility = "visible"; + preloadFrame = 1; + document.getElementById("SpinImage").src = zoomImagesURI+'zoom-spin-'+preloadFrame+'.png'; + preloadAnimTimer = setInterval("preloadAnim()", 100); +} + +// Zoom: Display and ANIMATE the jibber-jabber widget. Once preloadActive is false, bail and zoom it up! + +function preloadAnim(from) { + if (preloadActive != false) { + document.getElementById("SpinImage").src = zoomImagesURI+'zoom-spin-'+preloadFrame+'.png'; + preloadFrame++; + if (preloadFrame > 12) preloadFrame = 1; + } else { + document.getElementById("ZoomSpin").style.visibility = "hidden"; + clearInterval(preloadAnimTimer); + preloadAnimTimer = 0; + zoomIn(preloadFrom); + } +} + +// ZOOM CLICK: We got a click! Should we do the zoom? Or wait for the preload to complete? +// todo?: Double check that imgPreload src = clicked src + +function zoomClick(from, evt) { + + var shift = getShift(evt); + + // Check for Command / Alt key. If pressed, pass them through -- don't zoom! + if (! evt && window.event && (window.event.metaKey || window.event.altKey)) { + return true; + } else if (evt && (evt.metaKey|| evt.altKey)) { + return true; + } + + // Get browser dimensions + getSize(); + + // If preloading still, wait, and display the spinner. + if (preloadActive == true) { + // But only display the spinner if it's not already being displayed! + if (preloadAnimTimer == 0) { + preloadFrom = from; + preloadAnimStart(); + } + } else { + // Otherwise, we're loaded: do the zoom! + zoomIn(from, shift); + } + + return false; + +} + +// Zoom: Move an element in to endH endW, using zoomHost as a starting point. +// "from" is an object reference to the href that spawned the zoom. + +function zoomIn(from, shift) { + + zoomimg.src = from.getAttribute("href"); + + // Determine the zoom settings from where we came from, the element in the <a>. + // If there's no element in the <a>, or we can't get the width, make stuff up + + if (from.childNodes[0].width) { + startW = from.childNodes[0].width; + startH = from.childNodes[0].height; + startPos = findElementPos(from.childNodes[0]); + } else { + startW = 50; + startH = 12; + startPos = findElementPos(from); + } + + hostX = startPos[0]; + hostY = startPos[1]; + + // Make up for a scrolled containing div. + // TODO: This HAS to move into findElementPos. + + if (document.getElementById('scroller')) { + hostX = hostX - document.getElementById('scroller').scrollLeft; + } + + // Determine the target zoom settings from the preloaded image object + + endW = imgPreload.width; + endH = imgPreload.height; + + // Start! But only if we're not zooming already! + + if (zoomActive[theID] != true) { + + // Clear everything out just in case something is already open + + if (document.getElementById("ShadowBox")) { + document.getElementById("ShadowBox").style.visibility = "hidden"; + } else if (! browserIsIE) { + + // Wipe timer if shadow is fading in still + if (fadeActive["ZoomImage"]) { + clearInterval(fadeTimer["ZoomImage"]); + fadeActive["ZoomImage"] = false; + fadeTimer["ZoomImage"] = false; + } + + document.getElementById("ZoomImage").style.webkitBoxShadow = shadowSettings + '0.0)'; + } + + document.getElementById("ZoomClose").style.visibility = "hidden"; + + // Setup the CAPTION, if existing. Hide it first, set the text. + + if (includeCaption) { + document.getElementById(zoomCaptionDiv).style.visibility = "hidden"; + if (from.getAttribute('title') && includeCaption) { + // Yes, there's a caption, set it up + document.getElementById(zoomCaption).innerHTML = from.getAttribute('title'); + } else { + document.getElementById(zoomCaption).innerHTML = ""; + } + } + + // Store original position in an array for future zoomOut. + + zoomOrigW[theID] = startW; + zoomOrigH[theID] = startH; + zoomOrigX[theID] = hostX; + zoomOrigY[theID] = hostY; + + // Now set the starting dimensions + + zoomimg.style.width = startW + 'px'; + zoomimg.style.height = startH + 'px'; + zoomdiv.style.left = hostX + 'px'; + zoomdiv.style.top = hostY + 'px'; + + // Show the zooming image container, make it invisible + + if (includeFade == 1) { + setOpacity(0, zoomID); + } + zoomdiv.style.visibility = "visible"; + + // If it's too big to fit in the window, shrink the width and height to fit (with ratio). + + sizeRatio = endW / endH; + if (endW > myWidth - minBorder) { + endW = myWidth - minBorder; + endH = endW / sizeRatio; + } + if (endH > myHeight - minBorder) { + endH = myHeight - minBorder; + endW = endH * sizeRatio; + } + + zoomChangeX = ((myWidth / 2) - (endW / 2) - hostX); + zoomChangeY = (((myHeight / 2) - (endH / 2) - hostY) + myScroll); + zoomChangeW = (endW - startW); + zoomChangeH = (endH - startH); + + // Shift key? + + if (shift) { + tempSteps = zoomSteps * 7; + } else { + tempSteps = zoomSteps; + } + + // Setup Zoom + + zoomCurrent = 0; + + // Setup Fade with Zoom, If Requested + + if (includeFade == 1) { + fadeCurrent = 0; + fadeAmount = (0 - 100) / tempSteps; + } else { + fadeAmount = 0; + } + + // Do It! + + zoomTimer[theID] = setInterval("zoomElement('"+zoomID+"', '"+theID+"', "+zoomCurrent+", "+startW+", "+zoomChangeW+", "+startH+", "+zoomChangeH+", "+hostX+", "+zoomChangeX+", "+hostY+", "+zoomChangeY+", "+tempSteps+", "+includeFade+", "+fadeAmount+", 'zoomDoneIn(zoomID)')", zoomTime); + zoomActive[theID] = true; + } +} + +// Zoom it back out. + +function zoomOut(from, evt) { + + // Get shift key status. + // IE events don't seem to get passed through the function, so grab it from the window. + + if (getShift(evt)) { + tempSteps = zoomSteps * 7; + } else { + tempSteps = zoomSteps; + } + + // Check to see if something is happening/open + + if (zoomActive[theID] != true) { + + // First, get rid of the shadow if necessary. + + if (document.getElementById("ShadowBox")) { + document.getElementById("ShadowBox").style.visibility = "hidden"; + } else if (! browserIsIE) { + + // Wipe timer if shadow is fading in still + if (fadeActive["ZoomImage"]) { + clearInterval(fadeTimer["ZoomImage"]); + fadeActive["ZoomImage"] = false; + fadeTimer["ZoomImage"] = false; + } + + document.getElementById("ZoomImage").style.webkitBoxShadow = shadowSettings + '0.0)'; + } + + // ..and the close box... + + document.getElementById("ZoomClose").style.visibility = "hidden"; + + // ...and the caption if necessary! + + if (includeCaption && document.getElementById(zoomCaption).innerHTML != "") { + // fadeElementSetup(zoomCaptionDiv, 100, 0, 5, 1); + document.getElementById(zoomCaptionDiv).style.visibility = "hidden"; + } + + // Now, figure out where we came from, to get back there + + startX = parseInt(zoomdiv.style.left); + startY = parseInt(zoomdiv.style.top); + startW = zoomimg.width; + startH = zoomimg.height; + zoomChangeX = zoomOrigX[theID] - startX; + zoomChangeY = zoomOrigY[theID] - startY; + zoomChangeW = zoomOrigW[theID] - startW; + zoomChangeH = zoomOrigH[theID] - startH; + + // Setup Zoom + + zoomCurrent = 0; + + // Setup Fade with Zoom, If Requested + + if (includeFade == 1) { + fadeCurrent = 0; + fadeAmount = (100 - 0) / tempSteps; + } else { + fadeAmount = 0; + } + + // Do It! + + zoomTimer[theID] = setInterval("zoomElement('"+zoomID+"', '"+theID+"', "+zoomCurrent+", "+startW+", "+zoomChangeW+", "+startH+", "+zoomChangeH+", "+startX+", "+zoomChangeX+", "+startY+", "+zoomChangeY+", "+tempSteps+", "+includeFade+", "+fadeAmount+", 'zoomDone(zoomID, theID)')", zoomTime); + zoomActive[theID] = true; + } +} + +// Finished Zooming In + +function zoomDoneIn(zoomdiv, theID) { + + // Note that it's open + + zoomOpen = true; + zoomdiv = document.getElementById(zoomdiv); + + // Position the table shadow behind the zoomed in image, and display it + + if (document.getElementById("ShadowBox")) { + + setOpacity(0, "ShadowBox"); + shadowdiv = document.getElementById("ShadowBox"); + + shadowLeft = parseInt(zoomdiv.style.left) - 13; + shadowTop = parseInt(zoomdiv.style.top) - 8; + shadowWidth = zoomdiv.offsetWidth + 26; + shadowHeight = zoomdiv.offsetHeight + 26; + + shadowdiv.style.width = shadowWidth + 'px'; + shadowdiv.style.height = shadowHeight + 'px'; + shadowdiv.style.left = shadowLeft + 'px'; + shadowdiv.style.top = shadowTop + 'px'; + + document.getElementById("ShadowBox").style.visibility = "visible"; + fadeElementSetup("ShadowBox", 0, 100, 5); + + } else if (! browserIsIE) { + // Or, do a fade of the modern shadow + fadeElementSetup("ZoomImage", 0, .8, 5, 0, "shadow"); + } + + // Position and display the CAPTION, if existing + + if (includeCaption && document.getElementById(zoomCaption).innerHTML != "") { + // setOpacity(0, zoomCaptionDiv); + zoomcapd = document.getElementById(zoomCaptionDiv); + zoomcapd.style.top = parseInt(zoomdiv.style.top) + (zoomdiv.offsetHeight + 15) + 'px'; + zoomcapd.style.left = (myWidth / 2) - (zoomcapd.offsetWidth / 2) + 'px'; + zoomcapd.style.visibility = "visible"; + // fadeElementSetup(zoomCaptionDiv, 0, 100, 5); + } + + // Display Close Box (fade it if it's not IE) + + if (!browserIsIE) setOpacity(0, "ZoomClose"); + document.getElementById("ZoomClose").style.visibility = "visible"; + if (!browserIsIE) fadeElementSetup("ZoomClose", 0, 100, 5); + + // Get keypresses + document.onkeypress = getKey; + +} + +// Finished Zooming Out + +function zoomDone(zoomdiv, theID) { + + // No longer open + + zoomOpen = false; + + // Clear stuff out, clean up + + zoomOrigH[theID] = ""; + zoomOrigW[theID] = ""; + document.getElementById(zoomdiv).style.visibility = "hidden"; + zoomActive[theID] == false; + + // Stop getting keypresses + + document.onkeypress = null; + +} + +// Actually zoom the element + +function zoomElement(zoomdiv, theID, zoomCurrent, zoomStartW, zoomChangeW, zoomStartH, zoomChangeH, zoomStartX, zoomChangeX, zoomStartY, zoomChangeY, zoomSteps, includeFade, fadeAmount, execWhenDone) { + + // console.log("Zooming Step #"+zoomCurrent+ " of "+zoomSteps+" (zoom " + zoomStartW + "/" + zoomChangeW + ") (zoom " + zoomStartH + "/" + zoomChangeH + ") (zoom " + zoomStartX + "/" + zoomChangeX + ") (zoom " + zoomStartY + "/" + zoomChangeY + ") Fade: "+fadeAmount); + + // Test if we're done, or if we continue + + if (zoomCurrent == (zoomSteps + 1)) { + zoomActive[theID] = false; + clearInterval(zoomTimer[theID]); + + if (execWhenDone != "") { + eval(execWhenDone); + } + } else { + + // Do the Fade! + + if (includeFade == 1) { + if (fadeAmount < 0) { + setOpacity(Math.abs(zoomCurrent * fadeAmount), zoomdiv); + } else { + setOpacity(100 - (zoomCurrent * fadeAmount), zoomdiv); + } + } + + // Calculate this step's difference, and move it! + + moveW = cubicInOut(zoomCurrent, zoomStartW, zoomChangeW, zoomSteps); + moveH = cubicInOut(zoomCurrent, zoomStartH, zoomChangeH, zoomSteps); + moveX = cubicInOut(zoomCurrent, zoomStartX, zoomChangeX, zoomSteps); + moveY = cubicInOut(zoomCurrent, zoomStartY, zoomChangeY, zoomSteps); + + document.getElementById(zoomdiv).style.left = moveX + 'px'; + document.getElementById(zoomdiv).style.top = moveY + 'px'; + zoomimg.style.width = moveW + 'px'; + zoomimg.style.height = moveH + 'px'; + + zoomCurrent++; + + clearInterval(zoomTimer[theID]); + zoomTimer[theID] = setInterval("zoomElement('"+zoomdiv+"', '"+theID+"', "+zoomCurrent+", "+zoomStartW+", "+zoomChangeW+", "+zoomStartH+", "+zoomChangeH+", "+zoomStartX+", "+zoomChangeX+", "+zoomStartY+", "+zoomChangeY+", "+zoomSteps+", "+includeFade+", "+fadeAmount+", '"+execWhenDone+"')", zoomTime); + } +} + +// Zoom Utility: Get Key Press when image is open, and act accordingly + +function getKey(evt) { + if (! evt) { + theKey = event.keyCode; + } else { + theKey = evt.keyCode; + } + + if (theKey == 27) { // ESC + zoomOut(this, evt); + } +} + +//////////////////////////// +// +// FADE Functions +// + +function fadeOut(elem) { + if (elem.id) { + fadeElementSetup(elem.id, 100, 0, 10); + } +} + +function fadeIn(elem) { + if (elem.id) { + fadeElementSetup(elem.id, 0, 100, 10); + } +} + +// Fade: Initialize the fade function + +var fadeActive = new Array(); +var fadeQueue = new Array(); +var fadeTimer = new Array(); +var fadeClose = new Array(); +var fadeMode = new Array(); + +function fadeElementSetup(theID, fdStart, fdEnd, fdSteps, fdClose, fdMode) { + + // alert("Fading: "+theID+" Steps: "+fdSteps+" Mode: "+fdMode); + + if (fadeActive[theID] == true) { + // Already animating, queue up this command + fadeQueue[theID] = new Array(theID, fdStart, fdEnd, fdSteps); + } else { + fadeSteps = fdSteps; + fadeCurrent = 0; + fadeAmount = (fdStart - fdEnd) / fadeSteps; + fadeTimer[theID] = setInterval("fadeElement('"+theID+"', '"+fadeCurrent+"', '"+fadeAmount+"', '"+fadeSteps+"')", 15); + fadeActive[theID] = true; + fadeMode[theID] = fdMode; + + if (fdClose == 1) { + fadeClose[theID] = true; + } else { + fadeClose[theID] = false; + } + } +} + +// Fade: Do the fade. This function will call itself, modifying the parameters, so +// many instances can run concurrently. Can fade using opacity, or fade using a box-shadow. + +function fadeElement(theID, fadeCurrent, fadeAmount, fadeSteps) { + + if (fadeCurrent == fadeSteps) { + + // We're done, so clear. + + clearInterval(fadeTimer[theID]); + fadeActive[theID] = false; + fadeTimer[theID] = false; + + // Should we close it once the fade is complete? + + if (fadeClose[theID] == true) { + document.getElementById(theID).style.visibility = "hidden"; + } + + // Hang on.. did a command queue while we were working? If so, make it happen now + + if (fadeQueue[theID] && fadeQueue[theID] != false) { + fadeElementSetup(fadeQueue[theID][0], fadeQueue[theID][1], fadeQueue[theID][2], fadeQueue[theID][3]); + fadeQueue[theID] = false; + } + } else { + + fadeCurrent++; + + // Now actually do the fade adjustment. + + if (fadeMode[theID] == "shadow") { + + // Do a special fade on the webkit-box-shadow of the object + + if (fadeAmount < 0) { + document.getElementById(theID).style.webkitBoxShadow = shadowSettings + (Math.abs(fadeCurrent * fadeAmount)) + ')'; + } else { + document.getElementById(theID).style.webkitBoxShadow = shadowSettings + (100 - (fadeCurrent * fadeAmount)) + ')'; + } + + } else { + + // Set the opacity depending on if we're adding or subtracting (pos or neg) + + if (fadeAmount < 0) { + setOpacity(Math.abs(fadeCurrent * fadeAmount), theID); + } else { + setOpacity(100 - (fadeCurrent * fadeAmount), theID); + } + } + + // Keep going, and send myself the updated variables + clearInterval(fadeTimer[theID]); + fadeTimer[theID] = setInterval("fadeElement('"+theID+"', '"+fadeCurrent+"', '"+fadeAmount+"', '"+fadeSteps+"')", 15); + } +} + +//////////////////////////// +// +// UTILITY functions +// + +// Utility: Set the opacity, compatible with a number of browsers. Value from 0 to 100. + +function setOpacity(opacity, theID) { + + var object = document.getElementById(theID).style; + + // If it's 100, set it to 99 for Firefox. + + if (navigator.userAgent.indexOf("Firefox") != -1) { + if (opacity == 100) { opacity = 99.9999; } // This is majorly awkward + } + + // Multi-browser opacity setting + + object.filter = "alpha(opacity=" + opacity + ")"; // IE/Win + object.opacity = (opacity / 100); // Safari 1.2, Firefox+Mozilla + +} + +// Utility: Math functions for animation calucations - From http://www.robertpenner.com/easing/ +// +// t = time, b = begin, c = change, d = duration +// time = current frame, begin is fixed, change is basically finish - begin, duration is fixed (frames), + +function linear(t, b, c, d) +{ + return c*t/d + b; +} + +function sineInOut(t, b, c, d) +{ + return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; +} + +function cubicIn(t, b, c, d) { + return c*(t/=d)*t*t + b; +} + +function cubicOut(t, b, c, d) { + return c*((t=t/d-1)*t*t + 1) + b; +} + +function cubicInOut(t, b, c, d) +{ + if ((t/=d/2) < 1) return c/2*t*t*t + b; + return c/2*((t-=2)*t*t + 2) + b; +} + +function bounceOut(t, b, c, d) +{ + if ((t/=d) < (1/2.75)){ + return c*(7.5625*t*t) + b; + } else if (t < (2/2.75)){ + return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; + } else if (t < (2.5/2.75)){ + return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; + } else { + return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; + } +} + + +// Utility: Get the size of the window, and set myWidth and myHeight +// Credit to quirksmode.org + +function getSize() { + + // Window Size + + if (self.innerHeight) { // Everyone but IE + myWidth = window.innerWidth; + myHeight = window.innerHeight; + myScroll = window.pageYOffset; + } else if (document.documentElement && document.documentElement.clientHeight) { // IE6 Strict + myWidth = document.documentElement.clientWidth; + myHeight = document.documentElement.clientHeight; + myScroll = document.documentElement.scrollTop; + } else if (document.body) { // Other IE, such as IE7 + myWidth = document.body.clientWidth; + myHeight = document.body.clientHeight; + myScroll = document.body.scrollTop; + } + + // Page size w/offscreen areas + + if (window.innerHeight && window.scrollMaxY) { + myScrollWidth = document.body.scrollWidth; + myScrollHeight = window.innerHeight + window.scrollMaxY; + } else if (document.body.scrollHeight > document.body.offsetHeight) { // All but Explorer Mac + myScrollWidth = document.body.scrollWidth; + myScrollHeight = document.body.scrollHeight; + } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari + myScrollWidth = document.body.offsetWidth; + myScrollHeight = document.body.offsetHeight; + } +} + +// Utility: Get Shift Key Status +// IE events don't seem to get passed through the function, so grab it from the window. + +function getShift(evt) { + var shift = false; + if (! evt && window.event) { + shift = window.event.shiftKey; + } else if (evt) { + shift = evt.shiftKey; + if (shift) evt.stopPropagation(); // Prevents Firefox from doing shifty things + } + return shift; +} + +// Utility: Find the Y position of an element on a page. Return Y and X as an array + +function findElementPos(elemFind) +{ + var elemX = 0; + var elemY = 0; + do { + elemX += elemFind.offsetLeft; + elemY += elemFind.offsetTop; + } while ( elemFind = elemFind.offsetParent ) + + return Array(elemX, elemY); +}
\ No newline at end of file diff --git a/static/js-global/FancyZoomHTML.js b/static/js-global/FancyZoomHTML.js new file mode 100755 index 0000000..7644a9a --- /dev/null +++ b/static/js-global/FancyZoomHTML.js @@ -0,0 +1,318 @@ +// FancyZoomHTML.js - v1.0 +// Used to draw necessary HTML elements for FancyZoom +// +// Copyright (c) 2008 Cabel Sasser / Panic Inc +// All rights reserved. + +function insertZoomHTML() { + + // All of this junk creates the three <div>'s used to hold the closebox, image, and zoom shadow. + + var inBody = document.getElementsByTagName("body").item(0); + + // WAIT SPINNER + + var inSpinbox = document.createElement("div"); + inSpinbox.setAttribute('id', 'ZoomSpin'); + inSpinbox.style.position = 'absolute'; + inSpinbox.style.left = '10px'; + inSpinbox.style.top = '10px'; + inSpinbox.style.visibility = 'hidden'; + inSpinbox.style.zIndex = '525'; + inBody.insertBefore(inSpinbox, inBody.firstChild); + + var inSpinImage = document.createElement("img"); + inSpinImage.setAttribute('id', 'SpinImage'); + inSpinImage.setAttribute('src', zoomImagesURI+'zoom-spin-1.png'); + inSpinbox.appendChild(inSpinImage); + + // ZOOM IMAGE + // + // <div id="ZoomBox"> + // <a href="javascript:zoomOut();"><img src="/images/spacer.gif" id="ZoomImage" border="0"></a> <!-- THE IMAGE --> + // <div id="ZoomClose"> + // <a href="javascript:zoomOut();"><img src="/images/closebox.png" width="30" height="30" border="0"></a> + // </div> + // </div> + + var inZoombox = document.createElement("div"); + inZoombox.setAttribute('id', 'ZoomBox'); + + inZoombox.style.position = 'absolute'; + inZoombox.style.left = '10px'; + inZoombox.style.top = '10px'; + inZoombox.style.visibility = 'hidden'; + inZoombox.style.zIndex = '499'; + + inBody.insertBefore(inZoombox, inSpinbox.nextSibling); + + var inImage1 = document.createElement("img"); + inImage1.onclick = function (event) { zoomOut(this, event); return false; }; + inImage1.setAttribute('src',zoomImagesURI+'spacer.gif'); + inImage1.setAttribute('id','ZoomImage'); + inImage1.setAttribute('border', '0'); + // inImage1.setAttribute('onMouseOver', 'zoomMouseOver();') + // inImage1.setAttribute('onMouseOut', 'zoomMouseOut();') + + // This must be set first, so we can later test it using webkitBoxShadow. + inImage1.setAttribute('style', '-webkit-box-shadow: '+shadowSettings+'0.0)'); + inImage1.style.display = 'block'; + inImage1.style.width = '10px'; + inImage1.style.height = '10px'; + inImage1.style.cursor = 'pointer'; // -webkit-zoom-out? + inZoombox.appendChild(inImage1); + + var inClosebox = document.createElement("div"); + inClosebox.setAttribute('id', 'ZoomClose'); + inClosebox.style.position = 'absolute'; + + // In MSIE, we need to put the close box inside the image. + // It's 2008 and I'm having to do a browser detect? Sigh. + if (browserIsIE) { + inClosebox.style.left = '-1px'; + inClosebox.style.top = '0px'; + } else { + inClosebox.style.left = '-15px'; + inClosebox.style.top = '-15px'; + } + + inClosebox.style.visibility = 'hidden'; + inZoombox.appendChild(inClosebox); + + var inImage2 = document.createElement("img"); + inImage2.onclick = function (event) { zoomOut(this, event); return false; }; + inImage2.setAttribute('src',zoomImagesURI+'closebox.png'); + inImage2.setAttribute('width','30'); + inImage2.setAttribute('height','30'); + inImage2.setAttribute('border','0'); + inImage2.style.cursor = 'pointer'; + inClosebox.appendChild(inImage2); + + // SHADOW + // Only draw the table-based shadow if the programatic webkitBoxShadow fails! + // Also, don't draw it if we're IE -- it wouldn't look quite right anyway. + + if (! document.getElementById('ZoomImage').style.webkitBoxShadow && ! browserIsIE) { + + // SHADOW BASE + + var inFixedBox = document.createElement("div"); + inFixedBox.setAttribute('id', 'ShadowBox'); + inFixedBox.style.position = 'absolute'; + inFixedBox.style.left = '50px'; + inFixedBox.style.top = '50px'; + inFixedBox.style.width = '100px'; + inFixedBox.style.height = '100px'; + inFixedBox.style.visibility = 'hidden'; + inFixedBox.style.zIndex = '498'; + inBody.insertBefore(inFixedBox, inZoombox.nextSibling); + + // SHADOW + // Now, the shadow table. Skip if not compatible, or irrevelant with -box-shadow. + + // <div id="ShadowBox"><table border="0" width="100%" height="100%" cellpadding="0" cellspacing="0"> X + // <tr height="25"> + // <td width="27"><img src="/images/zoom-shadow1.png" width="27" height="25"></td> + // <td background="/images/zoom-shadow2.png"> </td> + // <td width="27"><img src="/images/zoom-shadow3.png" width="27" height="25"></td> + // </tr> + + var inShadowTable = document.createElement("table"); + inShadowTable.setAttribute('border', '0'); + inShadowTable.setAttribute('width', '100%'); + inShadowTable.setAttribute('height', '100%'); + inShadowTable.setAttribute('cellpadding', '0'); + inShadowTable.setAttribute('cellspacing', '0'); + inFixedBox.appendChild(inShadowTable); + + var inShadowTbody = document.createElement("tbody"); // Needed for IE (for HTML4). + inShadowTable.appendChild(inShadowTbody); + + var inRow1 = document.createElement("tr"); + inRow1.style.height = '25px'; + inShadowTbody.appendChild(inRow1); + + var inCol1 = document.createElement("td"); + inCol1.style.width = '27px'; + inRow1.appendChild(inCol1); + var inShadowImg1 = document.createElement("img"); + inShadowImg1.setAttribute('src', zoomImagesURI+'zoom-shadow1.png'); + inShadowImg1.setAttribute('width', '27'); + inShadowImg1.setAttribute('height', '25'); + inShadowImg1.style.display = 'block'; + inCol1.appendChild(inShadowImg1); + + var inCol2 = document.createElement("td"); + inCol2.setAttribute('background', zoomImagesURI+'zoom-shadow2.png'); + inRow1.appendChild(inCol2); + // inCol2.innerHTML = '<img src='; + var inSpacer1 = document.createElement("img"); + inSpacer1.setAttribute('src',zoomImagesURI+'spacer.gif'); + inSpacer1.setAttribute('height', '1'); + inSpacer1.setAttribute('width', '1'); + inSpacer1.style.display = 'block'; + inCol2.appendChild(inSpacer1); + + var inCol3 = document.createElement("td"); + inCol3.style.width = '27px'; + inRow1.appendChild(inCol3); + var inShadowImg3 = document.createElement("img"); + inShadowImg3.setAttribute('src', zoomImagesURI+'zoom-shadow3.png'); + inShadowImg3.setAttribute('width', '27'); + inShadowImg3.setAttribute('height', '25'); + inShadowImg3.style.display = 'block'; + inCol3.appendChild(inShadowImg3); + + // <tr> + // <td background="/images/zoom-shadow4.png"> </td> + // <td bgcolor="#ffffff"> </td> + // <td background="/images/zoom-shadow5.png"> </td> + // </tr> + + inRow2 = document.createElement("tr"); + inShadowTbody.appendChild(inRow2); + + var inCol4 = document.createElement("td"); + inCol4.setAttribute('background', zoomImagesURI+'zoom-shadow4.png'); + inRow2.appendChild(inCol4); + // inCol4.innerHTML = ' '; + var inSpacer2 = document.createElement("img"); + inSpacer2.setAttribute('src',zoomImagesURI+'spacer.gif'); + inSpacer2.setAttribute('height', '1'); + inSpacer2.setAttribute('width', '1'); + inSpacer2.style.display = 'block'; + inCol4.appendChild(inSpacer2); + + var inCol5 = document.createElement("td"); + inCol5.setAttribute('bgcolor', '#ffffff'); + inRow2.appendChild(inCol5); + // inCol5.innerHTML = ' '; + var inSpacer3 = document.createElement("img"); + inSpacer3.setAttribute('src',zoomImagesURI+'spacer.gif'); + inSpacer3.setAttribute('height', '1'); + inSpacer3.setAttribute('width', '1'); + inSpacer3.style.display = 'block'; + inCol5.appendChild(inSpacer3); + + var inCol6 = document.createElement("td"); + inCol6.setAttribute('background', zoomImagesURI+'zoom-shadow5.png'); + inRow2.appendChild(inCol6); + // inCol6.innerHTML = ' '; + var inSpacer4 = document.createElement("img"); + inSpacer4.setAttribute('src',zoomImagesURI+'spacer.gif'); + inSpacer4.setAttribute('height', '1'); + inSpacer4.setAttribute('width', '1'); + inSpacer4.style.display = 'block'; + inCol6.appendChild(inSpacer4); + + // <tr height="26"> + // <td width="27"><img src="/images/zoom-shadow6.png" width="27" height="26"</td> + // <td background="/images/zoom-shadow7.png"> </td> + // <td width="27"><img src="/images/zoom-shadow8.png" width="27" height="26"></td> + // </tr> + // </table> + + var inRow3 = document.createElement("tr"); + inRow3.style.height = '26px'; + inShadowTbody.appendChild(inRow3); + + var inCol7 = document.createElement("td"); + inCol7.style.width = '27px'; + inRow3.appendChild(inCol7); + var inShadowImg7 = document.createElement("img"); + inShadowImg7.setAttribute('src', zoomImagesURI+'zoom-shadow6.png'); + inShadowImg7.setAttribute('width', '27'); + inShadowImg7.setAttribute('height', '26'); + inShadowImg7.style.display = 'block'; + inCol7.appendChild(inShadowImg7); + + var inCol8 = document.createElement("td"); + inCol8.setAttribute('background', zoomImagesURI+'zoom-shadow7.png'); + inRow3.appendChild(inCol8); + // inCol8.innerHTML = ' '; + var inSpacer5 = document.createElement("img"); + inSpacer5.setAttribute('src',zoomImagesURI+'spacer.gif'); + inSpacer5.setAttribute('height', '1'); + inSpacer5.setAttribute('width', '1'); + inSpacer5.style.display = 'block'; + inCol8.appendChild(inSpacer5); + + var inCol9 = document.createElement("td"); + inCol9.style.width = '27px'; + inRow3.appendChild(inCol9); + var inShadowImg9 = document.createElement("img"); + inShadowImg9.setAttribute('src', zoomImagesURI+'zoom-shadow8.png'); + inShadowImg9.setAttribute('width', '27'); + inShadowImg9.setAttribute('height', '26'); + inShadowImg9.style.display = 'block'; + inCol9.appendChild(inShadowImg9); + } + + if (includeCaption) { + + // CAPTION + // + // <div id="ZoomCapDiv" style="margin-left: 13px; margin-right: 13px;"> + // <table border="1" cellpadding="0" cellspacing="0"> + // <tr height="26"> + // <td><img src="zoom-caption-l.png" width="13" height="26"></td> + // <td rowspan="3" background="zoom-caption-fill.png"><div id="ZoomCaption"></div></td> + // <td><img src="zoom-caption-r.png" width="13" height="26"></td> + // </tr> + // </table> + // </div> + + var inCapDiv = document.createElement("div"); + inCapDiv.setAttribute('id', 'ZoomCapDiv'); + inCapDiv.style.position = 'absolute'; + inCapDiv.style.visibility = 'hidden'; + inCapDiv.style.marginLeft = 'auto'; + inCapDiv.style.marginRight = 'auto'; + inCapDiv.style.zIndex = '501'; + + inBody.insertBefore(inCapDiv, inZoombox.nextSibling); + + var inCapTable = document.createElement("table"); + inCapTable.setAttribute('border', '0'); + inCapTable.setAttribute('cellPadding', '0'); // Wow. These honestly need to + inCapTable.setAttribute('cellSpacing', '0'); // be intercapped to work in IE. WTF? + inCapDiv.appendChild(inCapTable); + + var inTbody = document.createElement("tbody"); // Needed for IE (for HTML4). + inCapTable.appendChild(inTbody); + + var inCapRow1 = document.createElement("tr"); + inTbody.appendChild(inCapRow1); + + var inCapCol1 = document.createElement("td"); + inCapCol1.setAttribute('align', 'right'); + inCapRow1.appendChild(inCapCol1); + var inCapImg1 = document.createElement("img"); + inCapImg1.setAttribute('src', zoomImagesURI+'zoom-caption-l.png'); + inCapImg1.setAttribute('width', '13'); + inCapImg1.setAttribute('height', '26'); + inCapImg1.style.display = 'block'; + inCapCol1.appendChild(inCapImg1); + + var inCapCol2 = document.createElement("td"); + inCapCol2.setAttribute('background', zoomImagesURI+'zoom-caption-fill.png'); + inCapCol2.setAttribute('id', 'ZoomCaption'); + inCapCol2.setAttribute('valign', 'middle'); + inCapCol2.style.fontSize = '14px'; + inCapCol2.style.fontFamily = 'Helvetica'; + inCapCol2.style.fontWeight = 'bold'; + inCapCol2.style.color = '#ffffff'; + inCapCol2.style.textShadow = '0px 2px 4px #000000'; + inCapCol2.style.whiteSpace = 'nowrap'; + inCapRow1.appendChild(inCapCol2); + + var inCapCol3 = document.createElement("td"); + inCapRow1.appendChild(inCapCol3); + var inCapImg2 = document.createElement("img"); + inCapImg2.setAttribute('src', zoomImagesURI+'zoom-caption-r.png'); + inCapImg2.setAttribute('width', '13'); + inCapImg2.setAttribute('height', '26'); + inCapImg2.style.display = 'block'; + inCapCol3.appendChild(inCapImg2); + } +}
\ No newline at end of file diff --git a/static/mouseover.gif b/static/mouseover.gif Binary files differindex 2c6ee3e..2c6ee3e 100644..100755 --- a/static/mouseover.gif +++ b/static/mouseover.gif diff --git a/static/moverc.png b/static/moverc.png Binary files differindex 709f78d..709f78d 100644..100755 --- a/static/moverc.png +++ b/static/moverc.png diff --git a/static/nav_white.gif b/static/nav_white.gif Binary files differnew file mode 100755 index 0000000..611d97a --- /dev/null +++ b/static/nav_white.gif diff --git a/static/navdown_white.gif b/static/navdown_white.gif Binary files differnew file mode 100755 index 0000000..d3c0865 --- /dev/null +++ b/static/navdown_white.gif diff --git a/static/pichat.css b/static/pichat.css index 40720b7..40720b7 100644..100755 --- a/static/pichat.css +++ b/static/pichat.css diff --git a/static/profile.css b/static/profile.css index a8989db..7605fc7 100644..100755 --- a/static/profile.css +++ b/static/profile.css @@ -211,7 +211,29 @@ color:#087cff; font-size:1px; } + #newuser + {height:120px; + border-top-left-radius:5px; + border-top-right-radius:5px; + -webkit-border-top-left-radius:5px; + -webkit-border-top-right-radius:5px; + -moz-border-radius-topleft:5px; + -moz-border-radius-topright:5px; + border-bottom-left-radius:5px; + border-bottom-right-radius:5px; + -webkit-border-bottom-left-radius:5px; + -webkit-border-bottom-right-radius:5px; + -moz-border-radius-bottomleft:5px; + -moz-border-radius-bottomright:5px; + box-shadow: 15px 15px 10px #c8cbce; +-webkit-box-shadow: 15px 15px 10px #c8cbce; +-moz-box-shadow: 15px 15px 10px #c8cbce; +border:3px solid #999; +padding:20; + width:auto} + #newuser a:link{text-size:30px;} + body { margin: 0; @@ -221,4 +243,3 @@ body,td,th { }@charset "UTF-8"; -/* CSS Document */ diff --git a/static/scroll.js b/static/scroll.js index 955e188..955e188 100644..100755 --- a/static/scroll.js +++ b/static/scroll.js diff --git a/static/search.html b/static/search.html new file mode 100755 index 0000000..f4f210d --- /dev/null +++ b/static/search.html @@ -0,0 +1,301 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> +<title>dump.fm - image search</title> + +<style type="text/css"> +<!-- +a { + font-size: 12px; + color: #f0e; +} +a:visited { + color: #f0e; +} +a:hover { + color: #f0e; +} +a:active { + color: #f0e; +} +--> +</style></head> + +<div align="center"> + <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> + <script src="dumpsearch.js" type="text/javascript"></script> + <script type="text/javascript" src="all.js"></script> + <script type="text/javascript" src="cufon-yui.js"></script> + <script src="/static/js-global/FancyZoom.js" type="text/javascript"></script> +<script src="/static/js-global/FancyZoomHTML.js" type="text/javascript"></script> + <script type="text/javascript" src="futura.js"></script> + <style type="text/css"> + + + + + + + + + + + body { + font-size:13; + font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; + + +} +#rapper{ +} + #container { + text-align: left; + font-family: sans-serif; + color: #4E4848; + margin-left: auto; + margin-right: auto; + width: 1200px; + } + #description {display:none;width:790px;} + #description div, .post, .result {margin: -px 270px;width:470px;} + #description p > p,#description p {margin:0;line-height:.1;width:600;} + #description img {float:left;margin:0 12px 32px 0;} +table.search{font-family:Verdana,Arial,Helvetica,sans-serif;text-align:left;font-size:11px;color:#333}.gsc-trailing-more-results,.gsc-resultsHeader,.gsc-search-box{display:none}.gsc-results{padding-left:20px}#searchControl .gsc-control{width:550px;padding:10px;padding-left:20;}select, label{font:bold 11px Arial,Helvetica,sans-serif;color:#003;text-transform:uppercase;margin-right:5px;line-height:.1;}input#q{font:bold 11px Arial,Helvetica,sans-serif;color:#F00;height:2em;padding:3px;border-top:2px solid #999;border-right:2px solid #999;border-bottom:1px solid #999;border-left:1px solid #999;} +#logo{padding-left:20;} +.gsc-control img{ + max-width:500px; + width: expression(this.width > 500 ? 500: true); + max-height:400px; + height: expression(this.width > 500 ? 500: true); + + + </style> + <body onload="setupZoom()"> + +</div> +<form onSubmit="searchImages(); return false;" > <div id="rapper"> + <div align="center"> + <div align="center"> + <table class="search" width="425" border="0" cellpadding="5" cellspacing="0"> + <tr> + <td colspan="2"><p align="center"><img src="dumpsearch.gif" width="500" height="239"> </p> + + <div align="center"> + <input name="q" type="text" id="q" onChange="searchImages();" size="55%"> + <input type="submit" name="submit" id="submit" value="Search Images"> + </div> + <label> + </label> + </p> + <div align="right"></div></td> + </tr> + <table class="search" width="425" border="0" cellpadding="5" cellspacing="0"> + + +<a href="#" id="about">options</a></div> + </table> + + + <div id="description"> + <div align="right"><a href="#" class="closeinfo"></a> + </p> + </div> + <div> + + + <table class="search" width="425" border="0" cellpadding="5" cellspacing="0"> + <tr> + <td colspan="2"> + <p> + <label>where: + <select name="site" id="site" onChange="searchImages();"> + <option value="flickr.com" selected>flickr</option> + <option value="zooomr.com">zooomr</option> + <option value="photobucket.com">photobucket</option> + <option value="myspace.com">myspace</option> + <option value="wordpress.com">wordpress</option> + <option value="blogger.com">blogger</option> + <option value="typepad.com">typepad</option> + <option value="picsearch.com">picsearch</option> + <option value="webshots.com">webshots</option> + <option value="http://i.walmartimages.com/">walmart</option> + <option value="http://www.ibiblio.org">ibiblio</option> + <option value="gov">US Government</option> + <option value="deviantart.com">deviant art</option> + <option value="corbis.com">corbis</option> + <option value="msn.com">msn</option> + + <option value="made-in-china.com">made in china</option> + <option value="0" selected>EVERYWHERE</option> + </select> + </label> + <label> + <input name="showFaces" type="checkbox" onClick="searchImages();"> + Only Faces</label> + ★<label> hot shit</label>★ + <input type="radio" name="safeSearch" id="safeSearch2" value="off" onClick="searchImages();"checked> + Always ON + </p></td> + </tr> + + <tr> + + </tr> + <tr> + <td colspan="2"><p> + <label>File Type</label> + <input type="radio" name="type" value="jpg" onClick="searchImages();"> + JPG + <input name="type" type="radio" value="png" onClick="searchImages();"> + PNG + <input name="type" type="radio" value="bmp" onClick="searchImages();"> + BMP + <input type="radio" name="type" value="gif" onClick="searchImages();"> + GIF + <input type="radio" name="type" value="0" checked onClick="searchImages();"> + Any</p></td> + </tr> + <tr> + <td colspan="2"><p> + <label>Image Size</label> + <input type="radio" name="size" value="small" onClick="searchImages();"> + Small + <input name="size" type="radio" value="medium" onClick="searchImages();"> + Medium + <input type="radio" name="size" value="large" onClick="searchImages();"> + Large + <input type="radio" name="size" value="xlarge" onClick="searchImages();"> + Extra Large + <input type="radio" name="size" value="0" checked onClick="searchImages();"> + All Sizes</p></td> + </tr> + <tr> + <td colspan="2"><p> + <label>Image Color</label> + <input type="radio" name="color" value="bw" onClick="searchImages();"> + Black & White + <input name="color" type="radio" value="gray" onClick="searchImages();"> + Gray + <input type="radio" name="color" value="color" onClick="searchImages();"> + Color + <input type="radio" name="color" value="0" checked onClick="searchImages();"> + Whateva</p></td> + </tr> + </table> + </div> + </div> + + <tr> + <td colspan="2"><div id="searchControl">Loading...</div></td> + </tr> + </table> + </div> +</form> +<div align="center"> +</div> + <script type="text/javascript"> + google.load('search', '1'); + google.setOnLoadCallback(searchImages, true); + + function searchImages() { + var control = new google.search.SearchControl(); + control.setResultSetSize(google.search.Search.LARGE_RESULTSET); + control.setNoResultsString("Sorry but no images match your search criteria. Please modify your search query and try again."); + control.setLinkTarget(google.search.Search.LINK_TARGET_BLANK); + + var options = new google.search.SearcherOptions(); + options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN); + + var searcher = new google.search.ImageSearch(); + + for (var i = 0; i < document.forms[0].safeSearch.length; i++) { + if (document.forms[0].safeSearch[i].checked) { + if (document.forms[0].safeSearch[i].value == "off") + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_OFF); + else if (document.forms[0].safeSearch[i].value == "moderate") + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_MODERATE); + else if (document.forms[0].safeSearch[i].value == "strict") + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_STRICT); + else + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, null); + break; + } + } + + for (var i = 0; i < document.forms[0].size.length; i++) { + if (document.forms[0].size[i].checked) { + if (document.forms[0].size[i].value == "small") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_SMALL); + else if (document.forms[0].size[i].value == "medium") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_MEDIUM); + else if (document.forms[0].size[i].value == "large") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_LARGE); + else if (document.forms[0].size[i].value == "xlarge") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_EXTRA_LARGE); + else + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, null); + break; + } + } + + for (var i = 0; i < document.forms[0].type.length; i++) { + if (document.forms[0].type[i].checked) { + if (document.forms[0].type[i].value == "bmp") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_BMP); + else if (document.forms[0].type[i].value == "jpg") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_JPG); + else if (document.forms[0].type[i].value == "png") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_PNG); + else if (document.forms[0].type[i].value == "gif") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_GIF); + else + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, null); + break; + } + } + + for (var i = 0; i < document.forms[0].color.length; i++) { + if (document.forms[0].color[i].checked) { + if (document.forms[0].color[i].value == "bw") + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, google.search.ImageSearch.COLORIZATION_BLACK_AND_WHITE ); + else if (document.forms[0].color[i].value == "gray") + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, google.search.ImageSearch.COLORIZATION_GRAYSCALE); + else if (document.forms[0].color[i].value == "color") + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, google.search.ImageSearch.COLORIZATION_COLOR); + else + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, null); + break; + } + } + + var list = document.forms[0].site; + if (list.options[list.selectedIndex].value == 0) + searcher.setSiteRestriction(null); + else + searcher.setSiteRestriction(list.options[list.selectedIndex].value); + + for (var i = 0; i < document.forms[0].site.length; i++) { + if (document.forms[0].site[i].checked) { + if (document.forms[0].site[i].value == 0) + searcher.setSiteRestriction(null); + else + searcher.setSiteRestriction(document.forms[0].site[i].value); + break; + } + } + + if (document.forms[0].showFaces.checked) + searcher.setRestriction(GimageSearch.RESTRICT_IMAGETYPE, GimageSearch.IMAGETYPE_FACES); + else + searcher.setRestriction(GimageSearch.RESTRICT_IMAGETYPE); + + control.addSearcher(searcher, options); + control.draw(document.getElementById("searchControl")); + + control.execute(document.getElementById('q').value); + return false; + } + </script> +</div> </div> +</body> +</html>
\ No newline at end of file diff --git a/static/search/all.js b/static/search/all.js new file mode 100755 index 0000000..233a5a9 --- /dev/null +++ b/static/search/all.js @@ -0,0 +1 @@ +$(document).ready(function(){var $desc=$('#description');var dheight=$desc.height();$desc.css('height','0').hide();var about=$('a#about').text();$('a#about').bind('click',function(){if($desc.is(':visible')){closeDesc()}else{$desc.show().animate({height:dheight},{duration:500});$('a#about').text("close")};return false});function closeDesc(){$desc.animate({height:0},{duration:500,complete:function(){$desc.fadeOut(function(){$(this).css('display','none');$('a#about').text(about)})}})};$('a.closeinfo').bind('click',function(){closeDesc()});$('a#notecount').bind('click',function(){$('.notes').toggle()});var $searchBox=$('#search input[type="text"]');var searchDefault='Search';$searchBox.val(searchDefault);$searchBox.focus(function(){if($(this).attr("value")==searchDefault)$(this).attr("value","");$(this).addClass("focus")});$searchBox.blur(function(){if($(this).attr("value")=="")$(this).attr("value",searchDefault);$(this).removeClass("focus")});$('#wrapper a:not(.popupwindow)').filter(function(){var theHref=this;if(theHref.hostname&&theHref.hostname!==location.hostname){$(theHref).not(".noAutoIcon").addClass("offSite");$(theHref).not(".noAutoLink").attr('target','_blank').bind('click keypress',function(event){var code=event.charCode||event.keyCode;if(!code||(code&&code==13)){if(pageTracker){var fixedLink=this.href;fixedLink=fixedLink.replace(/https?:\/\/(.*)/,"$1");fixedLink='/outgoing/'+fixedLink;pageTracker._trackPageview(fixedLink)}}})}})});
diff --git a/static/search/browser.html b/static/search/browser.html new file mode 100755 index 0000000..a75e402 --- /dev/null +++ b/static/search/browser.html @@ -0,0 +1,262 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> +<title>dump.fm - Browser/Search Tool</title> + + <head> + + + <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> + <script src="dumpsearch.js" type="text/javascript"></script> + <style type="text/css"> + +a { + font-size: 12px; + color: #f0e; +} +a:visited { + color: #f0e; +} +a:hover { + color: #f0e; +} +a:active { + color: #f0e; +} +#ish {position:absolute; +left:20%; +top:5%; +} + + + body { + font-size:13; + font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; + + +} +#rapper{ +} + #container { + text-align: left; + font-family: sans-serif; + color: #4E4848; + margin-left: auto; + margin-right: auto; + width: 1200px; + } + #description {display:none;width:790px;} + #description div, .post, .result {margin: -px 270px;width:470px;} + #description p > p,#description p {margin:0;line-height:.1;width:600;} + #description img {float:left;margin:0 12px 32px 0;} +table.search{font-family:Verdana,Arial,Helvetica,sans-serif;text-align:left;font-size:11px;color:#333}.gsc-trailing-more-results,.gsc-resultsHeader,.gsc-search-box{display:none}.gsc-results{padding-left:20px}#searchControl .gsc-control{width:550px;padding:10px;padding-left:20;}select, label{font:bold 11px Arial,Helvetica,sans-serif;color:#003;text-transform:uppercase;margin-right:5px;line-height:.1;}input#q{font:bold 11px Arial,Helvetica,sans-serif;color:#F00;height:2em;padding:3px;border-top:2px solid #999;border-right:2px solid #999;border-bottom:1px solid #999;border-left:1px solid #999;} +#logo{padding-left:20;} +.gsc-control img{ + max-width:500px; + width: expression(this.width > 500 ? 500: true); + max-height:400px; + height: expression(this.width > 500 ? 500: true); + + + </style></head> + +<body onLoad="setupZoom()"> + + <div id="ish"> + +<form onSubmit="searchImages(); return false;" > <img src="dumpsearch.gif" width="348" height="166"> </p> + + + <input name="q" type="text" id="q" onChange="searchImages();" size="55%"> + <input type="submit" name="submit" id="submit" value="Search Images"> + + + + <p> + <label>where: + <select name="site" id="site" onChange="searchImages();"> + <option value="flickr.com" selected>flickr</option> + <option value="zooomr.com">zooomr</option> + <option value="photobucket.com">photobucket</option> + <option value="myspace.com">myspace</option> + <option value="wordpress.com">wordpress</option> + <option value="blogger.com">blogger</option> + <option value="typepad.com">typepad</option> + <option value="picsearch.com">picsearch</option> + <option value="webshots.com">webshots</option> + <option value="http://i.walmartimages.com/">walmart</option> + <option value="http://www.ibiblio.org">ibiblio</option> + <option value="gov">US Government</option> + <option value="deviantart.com">deviant art</option> + <option value="corbis.com">corbis</option> + <option value="msn.com">msn</option> + + <option value="made-in-china.com">made in china</option> + <option value="0" selected>EVERYWHERE</option> + </select> + </label> + <label> + <input name="showFaces" type="checkbox" onClick="searchImages();"> + Only Faces</label> + ★<label> hot shit</label>★ + <input type="radio" name="safeSearch" id="safeSearch2" value="off" onClick="searchImages();"checked> + Always ON +</p></td> + </tr> + + <tr> + + </tr> + <tr> + <td colspan="2"><p> + <label>File Type</label> + <input type="radio" name="type" value="jpg" onClick="searchImages();"> + JPG + <input name="type" type="radio" value="png" onClick="searchImages();"> + PNG + <input name="type" type="radio" value="bmp" onClick="searchImages();"> + BMP + <input type="radio" name="type" value="gif" onClick="searchImages();"> + GIF + <input type="radio" name="type" value="0" checked onClick="searchImages();"> + Any</p></td> + </tr> + <tr> + <td colspan="2"><p> + <label>Image Size</label> + <input type="radio" name="size" value="small" onClick="searchImages();"> + Small + <input name="size" type="radio" value="medium" onClick="searchImages();"> + Medium + <input type="radio" name="size" value="large" onClick="searchImages();"> + Large + <input type="radio" name="size" value="xlarge" onClick="searchImages();"> + Extra Large + <input type="radio" name="size" value="0" checked onClick="searchImages();"> + All Sizes</p></td> + </tr> +<tr> + <td colspan="2"><p> + <label>Image Color</label> + <input type="radio" name="color" value="bw" onClick="searchImages();"> + Black & White + <input name="color" type="radio" value="gray" onClick="searchImages();"> + Gray + <input type="radio" name="color" value="color" onClick="searchImages();"> + Color + <input type="radio" name="color" value="0" checked onClick="searchImages();"> + Whateva</p></td> + + + <tr> + <td colspan="2"><div id="searchControl">Loading...</div> + + + + + <script type="text/javascript"> + google.load('search', '1'); + google.setOnLoadCallback(searchImages, true); + + function searchImages() { + var control = new google.search.SearchControl(); + control.setResultSetSize(google.search.Search.LARGE_RESULTSET); + control.setNoResultsString("Sorry but no images match your search criteria. Please modify your search query and try again."); + control.setLinkTarget(google.search.Search.LINK_TARGET_BLANK); + + var options = new google.search.SearcherOptions(); + options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN); + + var searcher = new google.search.ImageSearch(); + + for (var i = 0; i < document.forms[0].safeSearch.length; i++) { + if (document.forms[0].safeSearch[i].checked) { + if (document.forms[0].safeSearch[i].value == "off") + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_OFF); + else if (document.forms[0].safeSearch[i].value == "moderate") + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_MODERATE); + else if (document.forms[0].safeSearch[i].value == "strict") + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_STRICT); + else + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, null); + break; + } + } + + for (var i = 0; i < document.forms[0].size.length; i++) { + if (document.forms[0].size[i].checked) { + if (document.forms[0].size[i].value == "small") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_SMALL); + else if (document.forms[0].size[i].value == "medium") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_MEDIUM); + else if (document.forms[0].size[i].value == "large") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_LARGE); + else if (document.forms[0].size[i].value == "xlarge") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_EXTRA_LARGE); + else + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, null); + break; + } + } + + for (var i = 0; i < document.forms[0].type.length; i++) { + if (document.forms[0].type[i].checked) { + if (document.forms[0].type[i].value == "bmp") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_BMP); + else if (document.forms[0].type[i].value == "jpg") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_JPG); + else if (document.forms[0].type[i].value == "png") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_PNG); + else if (document.forms[0].type[i].value == "gif") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_GIF); + else + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, null); + break; + } + } + + for (var i = 0; i < document.forms[0].color.length; i++) { + if (document.forms[0].color[i].checked) { + if (document.forms[0].color[i].value == "bw") + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, google.search.ImageSearch.COLORIZATION_BLACK_AND_WHITE ); + else if (document.forms[0].color[i].value == "gray") + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, google.search.ImageSearch.COLORIZATION_GRAYSCALE); + else if (document.forms[0].color[i].value == "color") + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, google.search.ImageSearch.COLORIZATION_COLOR); + else + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, null); + break; + } + } + + var list = document.forms[0].site; + if (list.options[list.selectedIndex].value == 0) + searcher.setSiteRestriction(null); + else + searcher.setSiteRestriction(list.options[list.selectedIndex].value); + + for (var i = 0; i < document.forms[0].site.length; i++) { + if (document.forms[0].site[i].checked) { + if (document.forms[0].site[i].value == 0) + searcher.setSiteRestriction(null); + else + searcher.setSiteRestriction(document.forms[0].site[i].value); + break; + } + } + + if (document.forms[0].showFaces.checked) + searcher.setRestriction(GimageSearch.RESTRICT_IMAGETYPE, GimageSearch.IMAGETYPE_FACES); + else + searcher.setRestriction(GimageSearch.RESTRICT_IMAGETYPE); + + control.addSearcher(searcher, options); + control.draw(document.getElementById("searchControl")); + + control.execute(document.getElementById('q').value); + return false; + } + </script> +</div> </div> +</body> +</html>
\ No newline at end of file diff --git a/static/search/cufon-yui.js b/static/search/cufon-yui.js new file mode 100755 index 0000000..cecc239 --- /dev/null +++ b/static/search/cufon-yui.js @@ -0,0 +1,5 @@ +/* + * Copyright (c) 2009 Simo Kinnunen. + * Licensed under the MIT license. + */ +var Cufon=(function(){var K=function(){return K.replace.apply(null,arguments)};var U=K.DOM={ready:(function(){var Z=false,b={loaded:1,complete:1};var Y=[],a=function(){if(Z){return}Z=true;for(var c;c=Y.shift();c()){}};if(document.addEventListener){document.addEventListener("DOMContentLoaded",a,false);window.addEventListener("pageshow",a,false)}if(!window.opera&&document.readyState){(function(){b[document.readyState]?a():setTimeout(arguments.callee,10)})()}if(document.readyState&&document.createStyleSheet){(function(){try{document.body.doScroll("left");a()}catch(c){setTimeout(arguments.callee,1)}})()}O(window,"load",a);return function(c){if(!arguments.length){a()}else{Z?c():Y.push(c)}}})()};var L=K.CSS={Size:function(Z,Y){this.value=parseFloat(Z);this.unit=String(Z).match(/[a-z%]*$/)[0]||"px";this.convert=function(a){return a/Y*this.value};this.convertFrom=function(a){return a/this.value*Y};this.toString=function(){return this.value+this.unit}},getStyle:function(Z){var Y=document.defaultView;if(Y&&Y.getComputedStyle){return new A(Y.getComputedStyle(Z,null))}if(Z.currentStyle){return new A(Z.currentStyle)}return new A(Z.style)},ready:(function(){var a=false;var Z=[],b=function(){a=true;for(var d;d=Z.shift();d()){}};var Y=Object.prototype.propertyIsEnumerable?F("style"):{length:0};var c=F("link");U.ready(function(){var g=0,f;for(var e=0,d=c.length;f=c[e],e<d;++e){if(!f.disabled&&f.rel.toLowerCase()=="stylesheet"){++g}}if(document.styleSheets.length>=Y.length+g){b()}else{setTimeout(arguments.callee,10)}});return function(d){if(a){d()}else{Z.push(d)}}})(),supports:function(a,Z){var Y=document.createElement("span").style;if(Y[a]===undefined){return false}Y[a]=Z;return Y[a]===Z},textAlign:function(b,a,Y,Z){if(a.get("textAlign")=="right"){if(Y>0){b=" "+b}}else{if(Y<Z-1){b+=" "}}return b},textDecoration:function(d,c){if(!c){c=this.getStyle(d)}var Z={underline:null,overline:null,"line-through":null};for(var Y=d;Y.parentNode&&Y.parentNode.nodeType==1;){var b=true;for(var a in Z){if(Z[a]){continue}if(c.get("textDecoration").indexOf(a)!=-1){Z[a]=c.get("color")}b=false}if(b){break}c=this.getStyle(Y=Y.parentNode)}return Z},textShadow:I(function(c){if(c=="none"){return null}var b=[],d={},Y,Z=0;var a=/(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;while(Y=a.exec(c)){if(Y[0]==","){b.push(d);d={},Z=0}else{if(Y[1]){d.color=Y[1]}else{d[["offX","offY","blur"][Z++]]=Y[2]}}}b.push(d);return b}),color:I(function(Z){var Y={};Y.color=Z.replace(/^rgba\((.*?),\s*([\d.]+)\)/,function(b,a,c){Y.opacity=parseFloat(c);return"rgb("+a+")"});return Y}),textTransform:function(Z,Y){return Z[{uppercase:"toUpperCase",lowercase:"toLowerCase"}[Y.get("textTransform")]||"toString"]()}};function Q(Z){var Y=this.face=Z.face;this.glyphs=Z.glyphs;this.w=Z.w;this.baseSize=parseInt(Y["units-per-em"],10);this.family=Y["font-family"].toLowerCase();this.weight=Y["font-weight"];this.style=Y["font-style"]||"normal";this.viewBox=(function(){var b=Y.bbox.split(/\s+/);var a={minX:parseInt(b[0],10),minY:parseInt(b[1],10),maxX:parseInt(b[2],10),maxY:parseInt(b[3],10)};a.width=a.maxX-a.minX,a.height=a.maxY-a.minY;a.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")};return a})();this.ascent=-parseInt(Y.ascent,10);this.descent=-parseInt(Y.descent,10);this.height=-this.ascent+this.descent}function E(){var Z={},Y={oblique:"italic",italic:"oblique"};this.add=function(a){(Z[a.style]||(Z[a.style]={}))[a.weight]=a};this.get=function(e,f){var d=Z[e]||Z[Y[e]]||Z.normal||Z.italic||Z.oblique;if(!d){return null}f={normal:400,bold:700}[f]||parseInt(f,10);if(d[f]){return d[f]}var b={1:1,99:0}[f%100],h=[],c,a;if(b===undefined){b=f>400}if(f==500){f=400}for(var g in d){g=parseInt(g,10);if(!c||g<c){c=g}if(!a||g>a){a=g}h.push(g)}if(f<c){f=c}if(f>a){f=a}h.sort(function(j,i){return(b?(j>f&&i>f)?j<i:j>i:(j<f&&i<f)?j>i:j<i)?-1:1});return d[h[0]]}}function P(){function a(c,d){if(c.contains){return c.contains(d)}return c.compareDocumentPosition(d)&16}function Y(d){var c=d.relatedTarget;if(!c||a(this,c)){return}Z(this)}function b(c){Z(this)}function Z(c){setTimeout(function(){K.replace(c,D.get(c).options,true)},10)}this.attach=function(c){if(c.onmouseenter===undefined){O(c,"mouseover",Y);O(c,"mouseout",Y)}else{O(c,"mouseenter",b);O(c,"mouseleave",b)}}}function X(){var a={},Y=0;function Z(b){return b.cufid||(b.cufid=++Y)}this.get=function(b){var c=Z(b);return a[c]||(a[c]={})}}function A(Y){var a={},Z={};this.get=function(b){return a[b]!=undefined?a[b]:Y[b]};this.getSize=function(c,b){return Z[c]||(Z[c]=new L.Size(this.get(c),b))};this.extend=function(b){for(var c in b){a[c]=b[c]}return this}}function O(Z,Y,a){if(Z.addEventListener){Z.addEventListener(Y,a,false)}else{if(Z.attachEvent){Z.attachEvent("on"+Y,function(){return a.call(Z,window.event)})}}}function R(Z,Y){var a=D.get(Z);if(a.options){return Z}if(Y.hover&&Y.hoverables[Z.nodeName.toLowerCase()]){B.attach(Z)}a.options=Y;return Z}function I(Y){var Z={};return function(a){if(!Z.hasOwnProperty(a)){Z[a]=Y.apply(null,arguments)}return Z[a]}}function C(d,c){if(!c){c=L.getStyle(d)}var Z=c.get("fontFamily").split(/\s*,\s*/),b;for(var a=0,Y=Z.length;a<Y;++a){b=Z[a].replace(/^(["'])(.*?)\1$/,"$2").toLowerCase();if(H[b]){return H[b].get(c.get("fontStyle"),c.get("fontWeight"))}}return null}function F(Y){return document.getElementsByTagName(Y)}function G(){var Y={},b;for(var a=0,Z=arguments.length;a<Z;++a){for(b in arguments[a]){Y[b]=arguments[a][b]}}return Y}function M(b,k,Z,m,c,a){var j=m.separate;if(j=="none"){return W[m.engine].apply(null,arguments)}var h=document.createDocumentFragment(),e;var f=k.split(N[j]),Y=(j=="words");if(Y&&S){if(/^\s/.test(k)){f.unshift("")}if(/\s$/.test(k)){f.push("")}}for(var g=0,d=f.length;g<d;++g){e=W[m.engine](b,Y?L.textAlign(f[g],Z,g,d):f[g],Z,m,c,a,g<d-1);if(e){h.appendChild(e)}}return h}function J(Z,g){var a,Y,d,f;for(var b=R(Z,g).firstChild;b;b=d){d=b.nextSibling;f=false;if(b.nodeType==1){if(!b.firstChild){continue}if(!/cufon/.test(b.className)){arguments.callee(b,g);continue}else{f=true}}if(!Y){Y=L.getStyle(Z).extend(g)}if(!a){a=C(Z,Y)}if(!a){continue}if(f){W[g.engine](a,null,Y,g,b,Z);continue}var e=b.data;if(e===""){continue}var c=M(a,e,Y,g,b,Z);if(c){b.parentNode.replaceChild(c,b)}else{b.parentNode.removeChild(b)}}}var S=" ".split(/\s+/).length==0;var D=new X();var B=new P();var V=[];var W={},H={},T={enableTextDecoration:false,engine:null,hover:false,hoverables:{a:true},printable:true,selector:(window.Sizzle||window.jQuery||(window.dojo&&dojo.query)||(window.$$&&function(Y){return $$(Y)})||(window.$&&function(Y){return $(Y)})||(document.querySelectorAll&&function(Y){return document.querySelectorAll(Y)})||F),separate:"words",textShadow:"none"};var N={words:/\s+/,characters:""};K.now=function(){U.ready();return K};K.refresh=function(){var a=V.splice(0,V.length);for(var Z=0,Y=a.length;Z<Y;++Z){K.replace.apply(null,a[Z])}return K};K.registerEngine=function(Z,Y){if(!Y){return K}W[Z]=Y;return K.set("engine",Z)};K.registerFont=function(a){var Y=new Q(a),Z=Y.family;if(!H[Z]){H[Z]=new E()}H[Z].add(Y);return K.set("fontFamily",Z)};K.replace=function(a,Z,Y){Z=G(T,Z);if(!Z.engine){return K}if(typeof Z.textShadow=="string"){Z.textShadow=L.textShadow(Z.textShadow)}if(!Y){V.push(arguments)}if(a.nodeType||typeof a=="string"){a=[a]}L.ready(function(){for(var c=0,b=a.length;c<b;++c){var d=a[c];if(typeof d=="string"){K.replace(Z.selector(d),Z,true)}else{J(d,Z)}}});return K};K.set=function(Y,Z){T[Y]=Z;return K};return K})();Cufon.registerEngine("canvas",(function(){var B=document.createElement("canvas");if(!B||!B.getContext||!B.getContext.apply){return null}B=null;var A=Cufon.CSS.supports("display","inline-block");var E=!A&&(document.compatMode=="BackCompat"||/frameset|transitional/i.test(document.doctype.publicId));var F=document.createElement("style");F.type="text/css";F.appendChild(document.createTextNode(".cufon-canvas{text-indent:0}@media screen,projection{.cufon-canvas{display:inline;display:inline-block;position:relative;vertical-align:middle"+(E?"":";font-size:1px;line-height:1px")+"}.cufon-canvas .cufon-alt{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden}"+(A?".cufon-canvas canvas{position:relative}":".cufon-canvas canvas{position:absolute}")+"}@media print{.cufon-canvas{padding:0 !important}.cufon-canvas canvas{display:none}.cufon-canvas .cufon-alt{display:inline}}"));document.getElementsByTagName("head")[0].appendChild(F);function D(O,H){var M=0,L=0;var G=[],N=/([mrvxe])([^a-z]*)/g,J;generate:for(var I=0;J=N.exec(O);++I){var K=J[2].split(",");switch(J[1]){case"v":G[I]={m:"bezierCurveTo",a:[M+~~K[0],L+~~K[1],M+~~K[2],L+~~K[3],M+=~~K[4],L+=~~K[5]]};break;case"r":G[I]={m:"lineTo",a:[M+=~~K[0],L+=~~K[1]]};break;case"m":G[I]={m:"moveTo",a:[M=~~K[0],L=~~K[1]]};break;case"x":G[I]={m:"closePath"};break;case"e":break generate}H[G[I].m].apply(H,G[I].a)}return G}function C(K,J){for(var I=0,H=K.length;I<H;++I){var G=K[I];J[G.m].apply(J,G.a)}}return function(q,T,k,P,X,r){var I=(T===null);var V=q.viewBox;var J=k.getSize("fontSize",q.baseSize);var h=k.get("letterSpacing");h=(h=="normal")?0:J.convertFrom(parseInt(h,10));var W=0,j=0,f=0,R=0;var U=P.textShadow,d=[];if(U){for(var p=0,m=U.length;p<m;++p){var Z=U[p];var c=J.convertFrom(parseFloat(Z.offX));var b=J.convertFrom(parseFloat(Z.offY));d[p]=[c,b];if(b<W){W=b}if(c>j){j=c}if(b>f){f=b}if(c<R){R=c}}}var u=Cufon.CSS.textTransform(I?X.alt:T,k).split("");var G=0,S=null;for(var p=0,m=u.length;p<m;++p){var Q=q.glyphs[u[p]]||q.missingGlyph;if(!Q){continue}G+=S=Number(Q.w||q.w)+h}if(S===null){return null}j+=(V.width-S);R+=V.minX;var O,K;if(I){O=X;K=X.firstChild}else{O=document.createElement("span");O.className="cufon cufon-canvas";O.alt=T;K=document.createElement("canvas");O.appendChild(K);if(P.printable){var n=document.createElement("span");n.className="cufon-alt";n.appendChild(document.createTextNode(T));O.appendChild(n)}}var v=O.style;var a=K.style;var H=J.convert(V.height-W+f);var t=Math.ceil(H);var e=t/H;K.width=Math.ceil(J.convert(G+j-R)*e);K.height=t;W+=V.minY;a.top=Math.round(J.convert(W-q.ascent))+"px";a.left=Math.round(J.convert(R))+"px";var N=Math.ceil(J.convert(G*e))+"px";if(A){v.width=N;v.height=J.convert(q.height)+"px"}else{v.paddingLeft=N;v.paddingBottom=(J.convert(q.height)-1)+"px"}var s=K.getContext("2d"),Y=t/V.height;s.scale(Y,Y);s.translate(-R,-W);s.lineWidth=q.face["underline-thickness"];s.save();function L(i,g){s.strokeStyle=g;s.beginPath();s.moveTo(0,i);s.lineTo(G,i);s.stroke()}var M=P.enableTextDecoration?Cufon.CSS.textDecoration(r,k):{};if(M.underline){L(-q.face["underline-position"],M.underline)}if(M.overline){L(q.ascent,M.overline)}s.fillStyle=k.get("color");function o(){for(var w=0,g=u.length;w<g;++w){var x=q.glyphs[u[w]]||q.missingGlyph;if(!x){continue}s.beginPath();if(x.d){if(x.code){C(x.code,s)}else{x.code=D("m"+x.d,s)}}s.fill();s.translate(Number(x.w||q.w)+h,0)}}if(U){for(var p=0,m=U.length;p<m;++p){var Z=U[p];s.save();s.fillStyle=Z.color;s.translate.apply(s,d[p]);o();s.restore()}}o();s.restore();if(M["line-through"]){L(-q.descent,M["line-through"])}return O}})());Cufon.registerEngine("vml",(function(){if(!document.namespaces){return}document.write('<!--[if vml]><script type="text/javascript">Cufon.vmlEnabled=true;<\/script><![endif]-->');if(!Cufon.vmlEnabled){return}if(document.namespaces.cvml==null){document.namespaces.add("cvml","urn:schemas-microsoft-com:vml");document.write('<style type="text/css">.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:group,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}</style>')}function B(C,D){return A(C,/(?:em|ex|%)$/i.test(D)?"1em":D)}function A(F,G){if(/px$/i.test(G)){return parseFloat(G)}var E=F.style.left,D=F.runtimeStyle.left;F.runtimeStyle.left=F.currentStyle.left;F.style.left=G;var C=F.style.pixelLeft;F.style.left=E;F.runtimeStyle.left=D;return C}return function(r,U,m,R,Y,s,h){var F=(U===null);if(F){U=Y.alt}var W=r.viewBox;var G=m.computedFontSize||(m.computedFontSize=new Cufon.CSS.Size(B(s,m.get("fontSize"))+"px",r.baseSize));var g=m.computedLSpacing;if(g==undefined){g=m.get("letterSpacing");m.computedLSpacing=g=(g=="normal")?0:~~G.convertFrom(A(s,g))}var O,H;if(F){O=Y;H=Y.firstChild}else{O=document.createElement("span");O.className="cufon cufon-vml";O.alt=U;H=document.createElement("span");H.className="cufon-vml-canvas";O.appendChild(H);if(R.printable){var p=document.createElement("span");p.className="cufon-alt";p.appendChild(document.createTextNode(U));O.appendChild(p)}if(!h){O.appendChild(document.createElement("cvml:group"))}}var x=O.style;var b=H.style;var D=G.convert(W.height),u=Math.ceil(D);var f=u/D;var e=W.minX,d=W.minY;b.height=u;b.top=Math.round(G.convert(d-r.ascent));b.left=Math.round(G.convert(e));x.height=G.convert(r.height)+"px";var K=R.enableTextDecoration?Cufon.CSS.textDecoration(s,m):{};var T=m.get("color");var v=Cufon.CSS.textTransform(U,m).split("");var C=0,c=0,L=null;var S,M,V=R.textShadow;for(var q=0,o=0,n=v.length;q<n;++q){S=r.glyphs[v[q]]||r.missingGlyph;if(S){C+=L=~~(S.w||r.w)+g}}if(L===null){return null}var N=-e+C+(W.width-L);var w=G.convert(N*f),j=Math.round(w);var a=N+","+W.height,E;var X="r"+a+"nsnf";for(q=0;q<n;++q){S=r.glyphs[v[q]]||r.missingGlyph;if(!S){continue}if(F){M=H.childNodes[o];if(M.firstChild){M.removeChild(M.firstChild)}}else{M=document.createElement("cvml:shape");H.appendChild(M)}M.stroked="f";M.coordsize=a;M.coordorigin=E=(e-c)+","+d;M.path=(S.d?"m"+S.d+"xe":"")+"m"+E+X;M.fillcolor=T;var t=M.style;t.width=j;t.height=u;if(V){var J=V[0],I=V[1];var Q=Cufon.CSS.color(J.color),P;var Z=document.createElement("cvml:shadow");Z.on="t";Z.color=Q.color;Z.offset=J.offX+","+J.offY;if(I){P=Cufon.CSS.color(I.color);Z.type="double";Z.color2=P.color;Z.offset2=I.offX+","+I.offY}Z.opacity=Q.opacity||(P&&P.opacity)||1;M.appendChild(Z)}c+=~~(S.w||r.w)+g;++o}x.width=Math.max(Math.ceil(G.convert(C*f)),0);return O}})());
\ No newline at end of file diff --git a/static/search/dumpsearch.gif b/static/search/dumpsearch.gif Binary files differnew file mode 100755 index 0000000..3f7a134 --- /dev/null +++ b/static/search/dumpsearch.gif diff --git a/static/search/dumpsearch.js b/static/search/dumpsearch.js new file mode 100755 index 0000000..bb0bcce --- /dev/null +++ b/static/search/dumpsearch.js @@ -0,0 +1,39 @@ +if (!window['google']) { +window['google'] = {}; +} +if (!window['google']['loader']) { +window['google']['loader'] = {}; +google.loader.ServiceBase = 'http://www.google.com/uds'; +google.loader.GoogleApisBase = 'http://ajax.googleapis.com/ajax'; +google.loader.ApiKey = 'ABQIAAAA6C4bndUCBastUbawfhKGURQviNTBAztVc6-FhSQEQv6BdFn_BBRfktMUHCKH-MICXpvRmJU3x-Ly0w'; +google.loader.KeyVerified = true; +google.loader.LoadFailure = false; +google.loader.Secure = false; +google.loader.GoogleLocale = 'www.google.com'; +google.loader.ClientLocation = null; +google.loader.AdditionalParams = ''; +(function() {var d=true,e=null,g=false,h=encodeURIComponent,j=window,k=google,m=undefined,n=document;function p(a,b){return a.load=b}var q="push",s="replace",t="charAt",u="ServiceBase",v="name",w="getTime",x="length",y="prototype",z="setTimeout",A="loader",B="substring",C="join",D="toLowerCase";function E(a){if(a in F)return F[a];return F[a]=navigator.userAgent[D]().indexOf(a)!=-1}var F={};function G(a,b){var c=function(){};c.prototype=b[y];a.S=b[y];a.prototype=new c} +function H(a,b){var c=a.G||[];c=c.concat(Array[y].slice.call(arguments,2));if(typeof a.t!="undefined")b=a.t;if(typeof a.s!="undefined")a=a.s;var f=function(){var i=c.concat(Array[y].slice.call(arguments));return a.apply(b,i)};f.G=c;f.t=b;f.s=a;return f}function I(a){a=new Error(a);a.toString=function(){return this.message};return a}function J(a,b){a=a.split(/\./);for(var c=j,f=0;f<a[x]-1;f++){c[a[f]]||(c[a[f]]={});c=c[a[f]]}c[a[a[x]-1]]=b}function K(a,b,c){a[b]=c}if(!L)var L=J;if(!M)var M=K;k[A].u={};L("google.loader.callbacks",k[A].u);var N={},O={};k[A].eval={};L("google.loader.eval",k[A].eval); +p(k,function(a,b,c){function f(r){var o=r.split(".");if(o[x]>2)throw I("Module: '"+r+"' not found!");else if(typeof o[1]!="undefined"){i=o[0];c.packages=c.packages||[];c.packages[q](o[1])}}var i=a;c=c||{};if(a instanceof Array||a&&typeof a=="object"&&typeof a[C]=="function"&&typeof a.reverse=="function")for(var l=0;l<a[x];l++)f(a[l]);else f(a);if(a=N[":"+i]){if(c&&!c.language&&c.locale)c.language=c.locale;if(c&&typeof c.callback=="string"){l=c.callback;if(l.match(/^[[\]A-Za-z0-9._]+$/)){l=j.eval(l); +c.callback=l}}if((l=c&&c.callback!=e)&&!a.r(b))throw I("Module: '"+i+"' must be loaded before DOM onLoad!");else if(l)a.l(b,c)?j[z](c.callback,0):a.load(b,c);else a.l(b,c)||a.load(b,c)}else throw I("Module: '"+i+"' not found!");});L("google.load",k.load);k.R=function(a,b){b?aa(a):P(j,"load",a)};L("google.setOnLoadCallback",k.R);function P(a,b,c){if(a.addEventListener)a.addEventListener(b,c,g);else if(a.attachEvent)a.attachEvent("on"+b,c);else{var f=a["on"+b];a["on"+b]=f!=e?ba([c,f]):c}} +function ba(a){return function(){for(var b=0;b<a[x];b++)a[b]()}}var Q=[];function aa(a){if(Q[x]==0){P(j,"load",R);if(!E("msie")&&!(E("safari")||E("konqueror"))&&E("mozilla")||j.opera)j.addEventListener("DOMContentLoaded",R,g);else if(E("msie"))n.write("<script defer onreadystatechange='google.loader.domReady()' src=//:><\/script>");else(E("safari")||E("konqueror"))&&j[z](ca,10)}Q[q](a)} +k[A].M=function(){var a=j.event.srcElement;if(a.readyState=="complete"){a.onreadystatechange=e;a.parentNode.removeChild(a);R()}};L("google.loader.domReady",k[A].M);var da={loaded:d,complete:d};function ca(){if(da[n.readyState])R();else Q[x]>0&&j[z](ca,10)}function R(){for(var a=0;a<Q[x];a++)Q[a]();Q.length=0} +k[A].e=function(a,b,c){if(c){var f;if(a=="script"){f=n.createElement("script");f.type="text/javascript";f.src=b}else if(a=="css"){f=n.createElement("link");f.type="text/css";f.href=b;f.rel="stylesheet"}(a=n.getElementsByTagName("head")[0])||(a=n.body.parentNode.appendChild(n.createElement("head")));a.appendChild(f)}else if(a=="script")n.write('<script src="'+b+'" type="text/javascript"><\/script>');else a=="css"&&n.write('<link href="'+b+'" type="text/css" rel="stylesheet"></link>')}; +L("google.loader.writeLoadTag",k[A].e);k[A].O=function(a){O=a};L("google.loader.rfm",k[A].O);k[A].Q=function(a){for(var b in a)if(typeof b=="string"&&b&&b[t](0)==":"&&!N[b])N[b]=new T(b[B](1),a[b])};L("google.loader.rpl",k[A].Q);k[A].P=function(a){if((a=a.specs)&&a[x])for(var b=0;b<a[x];++b){var c=a[b];if(typeof c=="string")N[":"+c]=new U(c);else{c=new V(c[v],c.baseSpec,c.customSpecs);N[":"+c[v]]=c}}};L("google.loader.rm",k[A].P);k[A].loaded=function(a){N[":"+a.module].j(a)}; +L("google.loader.loaded",k[A].loaded);k[A].L=function(){var a=(new Date)[w](),b=Math.floor(Math.random()*1E7);return"qid="+(a.toString(16)+b.toString(16))};L("google.loader.createGuidArg_",k[A].L);J("google_exportSymbol",J);J("google_exportProperty",K);k[A].b={};L("google.loader.themes",k[A].b);k[A].b.A="http://www.google.com/cse/style/look/bubblegum.css";M(k[A].b,"BUBBLEGUM",k[A].b.A);k[A].b.C="http://www.google.com/cse/style/look/greensky.css";M(k[A].b,"GREENSKY",k[A].b.C);k[A].b.B="http://www.google.com/cse/style/look/espresso.css"; +M(k[A].b,"ESPRESSO",k[A].b.B);k[A].b.F="http://www.google.com/cse/style/look/shiny.css";M(k[A].b,"SHINY",k[A].b.F);k[A].b.D="http://www.google.com/cse/style/look/minimalist.css";M(k[A].b,"MINIMALIST",k[A].b.D);function U(a){this.a=a;this.p=[];this.o={};this.c={};this.k=d;this.d=-1} +U[y].g=function(a,b){var c="";if(b!=m){if(b.language!=m)c+="&hl="+h(b.language);if(b.nocss!=m)c+="&output="+h("nocss="+b.nocss);if(b.nooldnames!=m)c+="&nooldnames="+h(b.nooldnames);if(b.packages!=m)c+="&packages="+h(b.packages);if(b.callback!=e)c+="&async=2";if(b.style!=m)c+="&style="+h(b.style);if(b.other_params!=m)c+="&"+b.other_params}if(!this.k){if(k[this.a]&&k[this.a].JSHash)c+="&sig="+h(k[this.a].JSHash);b=[];for(var f in this.o)f[t](0)==":"&&b[q](f[B](1));for(f in this.c)f[t](0)==":"&&b[q](f[B](1)); +c+="&have="+h(b[C](","))}return k[A][u]+"/?file="+this.a+"&v="+a+k[A].AdditionalParams+c};U[y].w=function(a){var b=e;if(a)b=a.packages;var c=e;if(b)if(typeof b=="string")c=[a.packages];else if(b[x]){c=[];for(a=0;a<b[x];a++)typeof b[a]=="string"&&c[q](b[a][s](/^\s*|\s*$/,"")[D]())}c||(c=["default"]);b=[];for(a=0;a<c[x];a++)this.o[":"+c[a]]||b[q](c[a]);return b}; +p(U[y],function(a,b){var c=this.w(b),f=b&&b.callback!=e;if(f)var i=new W(b.callback);for(var l=[],r=c[x]-1;r>=0;r--){var o=c[r];f&&i.H(o);if(this.c[":"+o]){c.splice(r,1);f&&this.c[":"+o][q](i)}else l[q](o)}if(c[x]){if(b&&b.packages)b.packages=c.sort()[C](",");if(!b&&O[":"+this.a]!=e&&O[":"+this.a].versions[":"+a]!=e&&!k[A].AdditionalParams&&this.k){a=O[":"+this.a];k[this.a]=k[this.a]||{};for(var S in a.properties)if(S&&S[t](0)==":")k[this.a][S[B](1)]=a.properties[S];k[A].e("script",k[A][u]+a.path+ +a.js,f);a.css&&k[A].e("css",k[A][u]+a.path+a.css,f)}else if(!b||!b.autoloaded)k[A].e("script",this.g(a,b),f);if(this.k){this.k=g;this.d=(new Date)[w]();if(this.d%100!=1)this.d=-1}for(r=0;r<l[x];r++){o=l[r];this.c[":"+o]=[];f&&this.c[":"+o][q](i)}}}); +U[y].j=function(a){if(this.d!=-1){X("al_"+this.a,"jl."+((new Date)[w]()-this.d),d);this.d=-1}this.p=this.p.concat(a.components);k[A][this.a]||(k[A][this.a]={});k[A][this.a].packages=this.p.slice(0);for(var b=0;b<a.components[x];b++){this.o[":"+a.components[b]]=d;var c=this.c[":"+a.components[b]];if(c){for(var f=0;f<c[x];f++)c[f].K(a.components[b]);delete this.c[":"+a.components[b]]}}X("hl",this.a)};U[y].l=function(a,b){return this.w(b)[x]==0};U[y].r=function(){return d}; +function W(a){this.J=a;this.m={};this.q=0}W[y].H=function(a){this.q++;this.m[":"+a]=d};W[y].K=function(a){if(this.m[":"+a]){this.m[":"+a]=g;this.q--;this.q==0&&j[z](this.J,0)}};function V(a,b,c){this.name=a;this.I=b;this.n=c;this.v=this.h=g;this.i=[];k[A].u[this[v]]=H(this.j,this)}G(V,U);p(V[y],function(a,b){var c=b&&b.callback!=e;if(c){this.i[q](b.callback);b.callback="google.loader.callbacks."+this[v]}else this.h=d;if(!b||!b.autoloaded)k[A].e("script",this.g(a,b),c);X("el",this[v])});V[y].l=function(a,b){return b&&b.callback!=e?this.v:this.h};V[y].j=function(){this.v=d;for(var a=0;a<this.i[x];a++)j[z](this.i[a],0);this.i=[]}; +var Y=function(a,b){return a.string?h(a.string)+"="+h(b):a.regex?b[s](/(^.*$)/,a.regex):""};V[y].g=function(a,b){return this.N(this.z(a),a,b)}; +V[y].N=function(a,b,c){var f="";if(a.key)f+="&"+Y(a.key,k[A].ApiKey);if(a.version)f+="&"+Y(a.version,b);b=k[A].Secure&&a.ssl?a.ssl:a.uri;if(c!=e)for(var i in c)if(a.params[i])f+="&"+Y(a.params[i],c[i]);else if(i=="other_params")f+="&"+c[i];else if(i=="base_domain")b="http://"+c[i]+a.uri[B](a.uri.indexOf("/",7));k[this[v]]={};if(b.indexOf("?")==-1&&f)f="?"+f[B](1);return b+f};V[y].r=function(a){return this.z(a).deferred};V[y].z=function(a){if(this.n)for(var b=0;b<this.n[x];++b){var c=this.n[b];if((new RegExp(c.pattern)).test(a))return c}return this.I};function T(a,b){this.a=a;this.f=b;this.h=g}G(T,U);p(T[y],function(a,b){this.h=d;k[A].e("script",this.g(a,b),g)});T[y].l=function(){return this.h};T[y].j=function(){};T[y].g=function(a,b){if(!this.f.versions[":"+a]){if(this.f.aliases){var c=this.f.aliases[":"+a];if(c)a=c}if(!this.f.versions[":"+a])throw I("Module: '"+this.a+"' with version '"+a+"' not found!");}a=k[A].GoogleApisBase+"/libs/"+this.a+"/"+a+"/"+this.f.versions[":"+a][b&&b.uncompressed?"uncompressed":"compressed"];X("el",this.a);return a}; +T[y].r=function(){return g};var ea=g,Z=[],fa=(new Date)[w](),X=function(a,b,c){if(!ea){P(j,"unload",ga);ea=d}if(c){if(!k[A].Secure&&(!k[A].Options||k[A].Options.csi===g)){a=a[D]()[s](/[^a-z0-9_.]+/g,"_");b=b[D]()[s](/[^a-z0-9_.]+/g,"_");j[z](H($,e,"http://csi.gstatic.com/csi?s=uds&v=2&action="+h(a)+"&it="+h(b)),1E4)}}else{Z[q]("r"+Z[x]+"="+h(a+(b?"|"+b:"")));j[z](ga,Z[x]>5?0:15E3)}},ga=function(){if(Z[x]){$(k[A][u]+"/stats?"+Z[C]("&")+"&nc="+(new Date)[w]()+"_"+((new Date)[w]()-fa));Z.length=0}},$=function(a){var b=new Image, +c=ha++;ia[c]=b;b.onload=b.onerror=function(){delete ia[c]};b.src=a;b=e},ia={},ha=0;J("google.loader.recordStat",X);J("google.loader.createImageForLogging",$); + +}) ();google.loader.rm({"specs":[{"name":"books","baseSpec":{"uri":"http://books.google.com/books/api.js","ssl":null,"key":{"string":"key"},"version":{"string":"v"},"deferred":true,"params":{"callback":{"string":"callback"},"language":{"string":"hl"}}}},"feeds",{"name":"friendconnect","baseSpec":{"uri":"http://www.google.com/friendconnect/script/friendconnect.js","ssl":null,"key":{"string":"key"},"version":{"string":"v"},"deferred":false,"params":{}}},"spreadsheets","gdata","visualization",{"name":"sharing","baseSpec":{"uri":"http://www.google.com/s2/sharing/js","ssl":null,"key":{"string":"key"},"version":{"string":"v"},"deferred":false,"params":{"language":{"string":"hl"}}}},"search",{"name":"maps","baseSpec":{"uri":"http://maps.google.com/maps?file\u003dgoogleapi","ssl":"https://maps-api-ssl.google.com/maps?file\u003dgoogleapi","key":{"string":"key"},"version":{"string":"v"},"deferred":true,"params":{"callback":{"regex":"callback\u003d$1\u0026async\u003d2"},"language":{"string":"hl"}}},"customSpecs":[{"uri":"http://maps.google.com/maps/api/js","ssl":null,"key":{"string":"key"},"version":{"string":"v"},"deferred":true,"params":{"callback":{"string":"callback"},"language":{"string":"hl"}},"pattern":"^(3|3..*)$"}]},"annotations_v2","orkut","language","earth",{"name":"annotations","baseSpec":{"uri":"http://www.google.com/reviews/scripts/annotations_bootstrap.js","ssl":null,"key":{"string":"key"},"version":{"string":"v"},"deferred":true,"params":{"callback":{"string":"callback"},"language":{"string":"hl"},"country":{"string":"gl"}}}},"ads","elements"]}); +google.loader.rfm({":feeds":{"versions":{":1":"1",":1.0":"1"},"path":"/api/feeds/1.0/e291a634414cb5ef1c9f3b5424b8ac4b/","js":"default+en.I.js","css":"default.css","properties":{":JSHash":"e291a634414cb5ef1c9f3b5424b8ac4b",":Version":"1.0"}},":search":{"versions":{":1":"1",":1.0":"1"},"path":"/api/search/1.0/d3863cc958afe4c6c797e1fc2d91793c/","js":"default+en.I.js","css":"default.css","properties":{":JSHash":"d3863cc958afe4c6c797e1fc2d91793c",":NoOldNames":false,":Version":"1.0"}},":language":{"versions":{":1":"1",":1.0":"1"},"path":"/api/language/1.0/cd6e6992328d3619ee31352c39a90b10/","js":"default+en.I.js","properties":{":JSHash":"cd6e6992328d3619ee31352c39a90b10",":Version":"1.0"}},":spreadsheets":{"versions":{":0":"1",":0.2":"1"},"path":"/api/spreadsheets/0.2/626554c678ff579189704ea83fe72774/","js":"default.I.js","properties":{":JSHash":"626554c678ff579189704ea83fe72774",":Version":"0.2"}},":earth":{"versions":{":1":"1",":1.0":"1"},"path":"/api/earth/1.0/abef9437280171d37dd6be81a58115d2/","js":"default.I.js","properties":{":JSHash":"abef9437280171d37dd6be81a58115d2",":Version":"1.0"}},":annotations":{"versions":{":1":"1",":1.0":"1"},"path":"/api/annotations/1.0/71b0b459463545c346b09f9e642464ae/","js":"default+en.I.js","properties":{":JSHash":"71b0b459463545c346b09f9e642464ae",":Version":"1.0"}}}); +google.loader.rpl({":scriptaculous":{"versions":{":1.8.3":{"uncompressed":"scriptaculous.js","compressed":"scriptaculous.js"},":1.8.2":{"uncompressed":"scriptaculous.js","compressed":"scriptaculous.js"},":1.8.1":{"uncompressed":"scriptaculous.js","compressed":"scriptaculous.js"}},"aliases":{":1.8":"1.8.3",":1":"1.8.3"}},":yui":{"versions":{":2.6.0":{"uncompressed":"build/yuiloader/yuiloader.js","compressed":"build/yuiloader/yuiloader-min.js"},":2.7.0":{"uncompressed":"build/yuiloader/yuiloader.js","compressed":"build/yuiloader/yuiloader-min.js"},":2.8.0r4":{"uncompressed":"build/yuiloader/yuiloader.js","compressed":"build/yuiloader/yuiloader-min.js"}},"aliases":{":2":"2.8.0r4",":2.7":"2.7.0",":2.6":"2.6.0",":2.8":"2.8.0r4",":2.8.0":"2.8.0r4"}},":swfobject":{"versions":{":2.1":{"uncompressed":"swfobject_src.js","compressed":"swfobject.js"},":2.2":{"uncompressed":"swfobject_src.js","compressed":"swfobject.js"}},"aliases":{":2":"2.2"}},":ext-core":{"versions":{":3.0.0":{"uncompressed":"ext-core-debug.js","compressed":"ext-core.js"}},"aliases":{":3":"3.0.0",":3.0":"3.0.0"}},":mootools":{"versions":{":1.2.3":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.1.1":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.2.4":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.2.1":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.2.2":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"},":1.1.2":{"uncompressed":"mootools.js","compressed":"mootools-yui-compressed.js"}},"aliases":{":1":"1.1.2",":1.11":"1.1.1",":1.2":"1.2.4",":1.1":"1.1.2"}},":jqueryui":{"versions":{":1.7.2":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.6.0":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.7.0":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.7.1":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.5.3":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"},":1.5.2":{"uncompressed":"jquery-ui.js","compressed":"jquery-ui.min.js"}},"aliases":{":1.7":"1.7.2",":1":"1.7.2",":1.6":"1.6.0",":1.5":"1.5.3"}},":chrome-frame":{"versions":{":1.0.2":{"uncompressed":"CFInstall.js","compressed":"CFInstall.min.js"},":1.0.1":{"uncompressed":"CFInstall.js","compressed":"CFInstall.min.js"},":1.0.0":{"uncompressed":"CFInstall.js","compressed":"CFInstall.min.js"}},"aliases":{":1":"1.0.2",":1.0":"1.0.2"}},":prototype":{"versions":{":1.6.0.2":{"uncompressed":"prototype.js","compressed":"prototype.js"},":1.6.1.0":{"uncompressed":"prototype.js","compressed":"prototype.js"},":1.6.0.3":{"uncompressed":"prototype.js","compressed":"prototype.js"}},"aliases":{":1.6.1":"1.6.1.0",":1":"1.6.1.0",":1.6":"1.6.1.0",":1.6.0":"1.6.0.3"}},":jquery":{"versions":{":1.2.3":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.3.1":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.3.0":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.3.2":{"uncompressed":"jquery.js","compressed":"jquery.min.js"},":1.2.6":{"uncompressed":"jquery.js","compressed":"jquery.min.js"}},"aliases":{":1":"1.3.2",":1.3":"1.3.2",":1.2":"1.2.6"}},":dojo":{"versions":{":1.2.3":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.3.1":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.1.1":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.3.0":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.3.2":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.2.0":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"},":1.4.0":{"uncompressed":"dojo/dojo.xd.js.uncompressed.js","compressed":"dojo/dojo.xd.js"}},"aliases":{":1":"1.4.0",":1.4":"1.4.0",":1.3":"1.3.2",":1.2":"1.2.3",":1.1":"1.1.1"}}}); +} diff --git a/static/search/futura.js b/static/search/futura.js new file mode 100755 index 0000000..6bbe529 --- /dev/null +++ b/static/search/futura.js @@ -0,0 +1 @@ +Cufon.registerFont({"w":246,"face":{"font-family":"Futura Std","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 8 2 2 2 4 2 2 4","ascent":"297","descent":"-63","x-height":"6","bbox":"-27 -374 408 95","underline-thickness":"18","underline-position":"-18","stemh":"57","stemv":"66","unicode-range":"U+0020-U+00FF"},"glyphs":{" ":{"w":123},"!":{"d":"69,-77v23,0,42,19,42,42v0,23,-19,42,-42,42v-23,0,-42,-19,-42,-42v0,-23,19,-42,42,-42xm35,-92r0,-179r68,0r0,179r-68,0","w":138},"\"":{"d":"17,-271r61,0r-10,119r-41,0xm102,-271r61,0r-10,119r-41,0","w":180},"#":{"d":"95,-261r39,0r-14,73r36,0r14,-73r38,0r-14,73r28,0r0,40r-35,0r-8,45r33,0r0,41r-42,0r-12,62r-38,0r12,-62r-37,0r-11,62r-39,0r12,-62r-33,0r0,-41r41,0r9,-45r-35,0r0,-40r42,0xm112,-148r-9,45r37,0r9,-45r-37,0"},"$":{"d":"24,-31r30,-55v17,15,42,31,65,31v15,0,34,-9,34,-27v0,-20,-29,-24,-57,-34v-28,-10,-56,-26,-56,-70v0,-42,29,-82,73,-85r0,-44r34,0r0,44v23,2,46,8,65,21r-26,52v-13,-10,-29,-18,-46,-18v-16,0,-31,7,-31,21v0,17,22,24,35,28v41,14,78,28,78,78v0,50,-28,76,-75,88r0,45r-34,0r0,-43v-36,-1,-67,-14,-89,-32"},"%":{"d":"81,-275v40,0,74,23,74,66v0,44,-33,67,-74,67v-41,0,-74,-23,-74,-67v0,-43,34,-66,74,-66xm81,-239v-17,0,-31,14,-31,31v0,17,14,30,31,30v17,0,31,-13,31,-30v0,-17,-14,-31,-31,-31xm270,-129v40,0,74,23,74,66v0,44,-33,67,-74,67v-41,0,-74,-23,-74,-67v0,-43,34,-66,74,-66xm270,-93v-17,0,-31,13,-31,30v0,17,14,31,31,31v17,0,31,-14,31,-31v0,-17,-14,-30,-31,-30xm237,-271r35,0r-158,271r-35,0","w":351},"&":{"d":"155,-67r-43,-46v-30,9,-33,58,5,57v13,0,27,-5,38,-11xm141,-172v26,-8,39,-56,2,-59v-35,3,-22,45,-2,59xm217,0r-23,-25v-57,47,-178,47,-180,-46v-1,-44,29,-62,64,-78v-10,-17,-25,-28,-25,-55v0,-47,41,-75,85,-75v43,0,84,28,84,74v0,34,-22,51,-50,65r34,36v13,-12,26,-24,36,-38r40,38v-13,13,-24,28,-38,40r61,64r-88,0","w":305},"(":{"d":"70,-284r39,22v-57,98,-55,228,0,326r-39,22v-71,-107,-69,-264,0,-370","w":126},")":{"d":"18,-262r39,-22v70,106,71,263,0,370r-39,-22v55,-98,56,-228,0,-326","w":126},"*":{"d":"71,-271r32,0r-2,38r32,-20r16,27r-34,18r34,19r-16,27r-32,-21r2,37r-33,0r2,-36r-30,19r-16,-27r32,-18r-34,-18r17,-28r31,20","w":173},"+":{"d":"96,-120r0,-65r54,0r0,65r66,0r0,54r-66,0r0,66r-54,0r0,-66r-65,0r0,-54r65,0"},",":{"d":"55,-69r61,0r-66,120r-42,0","w":123},"-":{"d":"19,-143r103,0r0,54r-103,0r0,-54","w":141},".":{"d":"62,-77v23,0,42,19,42,42v0,23,-19,42,-42,42v-23,0,-42,-19,-42,-42v0,-23,19,-42,42,-42","w":123},"\/":{"d":"147,-299r52,0r-138,332r-51,0","w":208},"0":{"d":"123,-282v157,2,156,290,0,293v-155,-3,-155,-291,0,-293xm123,-220v-36,0,-45,58,-45,84v0,26,9,85,45,85v36,0,45,-59,45,-85v0,-26,-9,-84,-45,-84"},"1":{"d":"97,-212r-39,0r0,-59r109,0r0,271r-70,0r0,-212"},"2":{"d":"141,-60r89,0r0,60r-218,0r111,-121v16,-17,31,-41,31,-66v0,-17,-12,-35,-31,-35v-23,0,-34,21,-29,44r-77,0v2,-62,41,-104,105,-104v57,0,105,37,105,96v0,61,-53,92,-86,126"},"3":{"d":"26,-193v6,-54,42,-85,101,-89v75,-6,119,94,58,134v29,8,45,41,45,69v0,92,-130,117,-187,59v-16,-17,-32,-44,-31,-68r72,0v0,22,16,38,38,38v22,0,38,-14,38,-36v0,-25,-25,-42,-50,-34r0,-47v23,2,38,-8,38,-30v0,-17,-11,-28,-27,-28v-18,0,-29,14,-29,32r-66,0"},"4":{"d":"203,-110r33,0r0,54r-33,0r0,56r-65,0r0,-56r-132,0r0,-45r105,-170r92,0r0,161xm138,-110r-1,-105r-64,105r65,0"},"5":{"d":"222,-85v3,93,-129,123,-202,71r10,-66v21,19,48,31,76,31v22,0,43,-16,43,-40v0,-53,-71,-54,-111,-35r24,-147r141,0r0,59r-94,0r-5,31v68,-14,116,32,118,96"},"6":{"d":"122,11v-58,0,-115,-42,-114,-98v3,-77,66,-132,102,-184r80,0r-76,92v64,-29,125,23,125,87v0,67,-55,103,-117,103xm122,-45v25,0,43,-20,43,-45v0,-24,-18,-44,-43,-44v-24,0,-45,20,-45,44v0,25,21,45,45,45"},"7":{"d":"139,-212r-113,0r0,-59r222,0r-155,271r-78,0"},"8":{"d":"123,-233v-17,0,-29,13,-29,30v0,17,12,31,29,31v17,0,30,-14,30,-31v0,-17,-13,-30,-30,-30xm123,-114v-18,0,-32,15,-32,34v0,18,14,33,32,33v18,0,33,-15,33,-33v0,-19,-15,-34,-33,-34xm31,-205v0,-103,185,-103,185,0v0,29,-18,54,-43,62v32,11,54,36,54,72v0,56,-57,82,-104,82v-47,0,-103,-26,-103,-82v0,-36,22,-61,54,-72v-25,-8,-43,-33,-43,-62"},"9":{"d":"125,-282v59,0,116,42,114,98v-3,77,-66,132,-102,184r-80,0r77,-92v-65,29,-126,-24,-126,-88v0,-67,55,-102,117,-102xm125,-226v-25,0,-43,19,-43,44v0,25,18,45,43,45v25,0,45,-20,45,-45v0,-25,-20,-44,-45,-44"},":":{"d":"62,-77v23,0,42,19,42,42v0,23,-19,42,-42,42v-23,0,-42,-19,-42,-42v0,-23,19,-42,42,-42xm62,-198v23,0,42,19,42,42v0,23,-19,42,-42,42v-23,0,-42,-19,-42,-42v0,-23,19,-42,42,-42","w":123},";":{"d":"50,-69r61,0r-66,120r-42,0xm78,-198v23,0,43,19,43,42v0,23,-20,42,-43,42v-23,0,-42,-19,-42,-42v0,-23,19,-42,42,-42","w":123},"<":{"d":"36,-71r0,-43r176,-66r0,54r-99,34r99,33r0,54"},"=":{"d":"31,-163r185,0r0,54r-185,0r0,-54xm31,-76r185,0r0,54r-185,0r0,-54"},">":{"d":"212,-114r0,43r-176,66r0,-54r98,-34r-98,-33r0,-54"},"?":{"d":"104,-279v48,-1,94,38,94,85v0,41,-28,66,-65,78r0,25r-66,0r0,-70v27,7,61,-4,62,-33v0,-15,-12,-27,-27,-27v-17,0,-25,12,-25,27r-72,0v0,-55,48,-85,99,-85xm101,-77v23,0,42,19,42,42v0,23,-19,42,-42,42v-23,0,-42,-19,-42,-42v0,-23,19,-42,42,-42","w":214},"@":{"d":"136,-169v-38,-2,-51,73,-8,75v39,1,49,-75,8,-75xm264,-163v0,54,-36,111,-78,108v-10,0,-19,-9,-22,-21v-30,41,-106,15,-106,-46v0,-64,74,-118,117,-64r4,-19r34,0r-18,93v-2,9,-6,25,4,24v13,-1,34,-31,36,-62v3,-61,-42,-95,-97,-95v-60,0,-102,46,-102,109v0,94,101,132,173,95r29,24v-25,13,-58,24,-97,24v-77,0,-139,-61,-139,-143v0,-81,60,-143,137,-143v65,0,125,52,125,116","w":266},"A":{"d":"189,-47r-97,0r-19,47r-74,0r104,-271r77,0r102,271r-75,0xm170,-101r-29,-87r-29,87r58,0","w":281},"B":{"d":"94,-112r0,58v27,0,65,4,65,-29v0,-36,-38,-28,-65,-29xm230,-76v0,96,-115,74,-207,76r0,-271v82,3,184,-20,181,70v0,24,-7,45,-29,56v39,5,55,31,55,69xm94,-217r0,52v23,0,46,0,46,-26v0,-27,-24,-26,-46,-26","w":243},"C":{"d":"9,-135v0,-100,109,-178,208,-130r0,85v-37,-55,-134,-29,-134,45v0,73,95,98,134,45r0,85v-102,42,-208,-31,-208,-130","w":237},"D":{"d":"23,0r0,-271r100,0v76,0,138,59,138,135v0,76,-63,136,-138,136r-100,0xm94,-212r0,152v54,3,94,-17,94,-76v0,-55,-38,-80,-94,-76","w":270},"E":{"d":"177,-212r-83,0r0,46r79,0r0,59r-79,0r0,47r83,0r0,60r-154,0r0,-271r154,0r0,59","w":198},"F":{"d":"179,-212r-85,0r0,46r77,0r0,59r-77,0r0,107r-71,0r0,-271r156,0r0,59","w":195,"k":{"Y":-7,"\u00dd":-7}},"G":{"d":"294,-152v7,87,-56,161,-140,161v-85,0,-145,-58,-145,-143v0,-88,61,-146,148,-146v56,0,99,25,122,76r-67,28v-10,-26,-31,-44,-59,-44v-93,2,-93,170,1,171v31,0,54,-16,57,-47r-57,0r0,-56r140,0","w":303},"H":{"d":"94,-167r101,0r0,-104r71,0r0,271r-71,0r0,-111r-101,0r0,111r-71,0r0,-271r71,0r0,104","w":289},"I":{"d":"94,-271r0,271r-71,0r0,-271r71,0","w":116},"J":{"d":"84,-271r70,0v-8,116,37,281,-90,278v-30,0,-53,-15,-69,-40r40,-43v8,11,20,23,29,23v21,0,20,-25,20,-40r0,-178","w":176},"K":{"d":"180,-271r87,0r-108,128r118,143r-92,0r-91,-118r0,118r-71,0r0,-271r71,0r0,112","w":272},"L":{"d":"94,-271r0,211r84,0r0,60r-155,0r0,-271r71,0","w":178,"k":{"s":20,"u":46,"\u00fa":46,"\u00fb":46,"\u00fc":46,"\u00f9":46,":":46}},"M":{"d":"7,0r46,-271r69,0r55,145r59,-145r70,0r41,271r-71,0r-20,-156r-65,156r-28,0r-63,-156r-23,156r-70,0","w":353},"N":{"d":"23,0r0,-271r71,0r130,166r0,-166r70,0r0,271r-70,0r-130,-166r0,166r-71,0","w":317},"O":{"d":"159,-280v78,0,151,57,151,139v0,88,-64,150,-151,150v-87,0,-150,-62,-150,-150v0,-82,72,-139,150,-139xm159,-212v-42,0,-76,35,-76,72v0,47,34,81,76,81v42,0,77,-34,77,-81v0,-37,-35,-72,-77,-72","w":319},"P":{"d":"23,0r0,-271v99,0,207,-15,207,89v0,80,-54,97,-136,92r0,90r-71,0xm94,-215r0,68v31,0,62,4,62,-33v0,-38,-30,-35,-62,-35","w":237,"k":{"Y":20,"\u00dd":20,"A":46,"\u00c6":46,"\u00c1":46,"\u00c2":46,"\u00c4":46,"\u00c0":46,"\u00c5":46,"\u00c3":46,"p":20}},"Q":{"d":"204,-114r20,19v33,-50,-7,-118,-64,-117v-42,0,-77,35,-77,72v0,54,46,93,98,77r-43,-43xm320,7r-64,10r-22,-26v-101,53,-225,-16,-225,-132v0,-82,72,-139,150,-139v85,0,151,57,151,145v0,36,-12,67,-35,95","w":319},"R":{"d":"163,-111r86,111r-88,0r-67,-104r0,104r-71,0r0,-271v94,0,202,-16,200,83v0,37,-21,70,-60,77xm94,-217r0,67v27,0,55,-2,55,-34v0,-32,-28,-33,-55,-33","w":244,"k":{"v":20,"V":13,"w":33,"W":27}},"S":{"d":"211,-91v0,100,-129,125,-200,67r30,-57v18,15,39,28,63,28v17,0,34,-8,34,-27v0,-20,-28,-27,-43,-31v-44,-13,-73,-24,-73,-77v0,-92,110,-112,178,-68r-28,54v-13,-11,-30,-18,-47,-18v-13,0,-30,8,-30,23v0,23,30,25,49,31v38,11,67,31,67,75","w":221},"T":{"d":"131,-212r0,212r-71,0r0,-212r-58,0r0,-59r187,0r0,59r-58,0","w":191,"k":{"\u00fc":14,"\u00f2":13,"\u00f6":13,"\u00e8":27,"\u00eb":27,"\u00ea":27,"\u00e3":13,"\u00e5":13,"\u00e0":13,"\u00e4":7,"\u00e2":13,"e":27,"\u00e9":27,"r":50,"s":46}},"U":{"d":"188,-271r70,0r0,152v0,35,0,71,-28,96v-47,42,-133,42,-180,0v-28,-25,-28,-61,-28,-96r0,-152r70,0r0,142v0,35,3,74,48,74v45,0,48,-39,48,-74r0,-142","w":280},"V":{"d":"71,-271r66,164r66,-164r76,0r-116,271r-54,0r-114,-271r76,0","w":273,"k":{"\u00f6":-6,"\u00f4":-6,"\u00e8":33,"\u00eb":33,"\u00ea":33,"\u00e3":-14,"\u00e5":-14,"\u00e0":-14,"\u00e4":-14,"\u00e2":-14,"f":-6,"\u00df":-6,"o":-6,"\u00f8":-6,"\u00f3":-6,"\u00f2":-6,"\u00f5":-6,"t":-6,"a":-14,"\u00e6":-14,"\u00e1":-14,"e":33,"\u00e9":33,"r":33,"s":-7,"u":-6,"\u00fa":-6,"\u00fb":-6,"\u00fc":-6,"\u00f9":-6,":":6,"-":6,";":-6,"i":-7,"\u00ed":-7,"\u00ee":-7,"\u00ef":-7,"\u00ec":-7}},"W":{"d":"68,-271r48,175r57,-175r56,0r54,175r51,-175r74,0r-87,271r-72,0r-48,-157r-54,157r-71,0r-81,-271r73,0","w":402,"k":{"\u00fc":11,"\u00f6":7,"\u00ea":11,"\u00e4":10,"f":7,"\u00df":7,"o":7,"\u00f8":7,"\u00f3":7,"\u00f4":7,"\u00f2":7,"\u00f5":7,"t":14}},"X":{"d":"103,-145r-86,-126r86,0r42,70r41,-70r87,0r-87,126r101,145r-85,0r-57,-89r-63,89r-85,0","w":284},"Y":{"d":"93,-130r-100,-141r85,0r51,73r50,-73r85,0r-100,141r0,130r-71,0r0,-130","w":257,"k":{"\u00fc":20,"\u00f6":29,"f":29,"\u00df":29,"o":29,"\u00f8":29,"\u00f3":29,"\u00f4":29,"\u00f2":29,"\u00f5":29,"z":22,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"c":40,"\u00e7":40,"s":27,";":27,"i":27,"\u00ed":27,"\u00ee":27,"\u00ef":27,"\u00ec":27,"p":27}},"Z":{"d":"123,-60r114,0r0,60r-233,0r128,-212r-106,0r0,-59r225,0","w":254},"[":{"d":"69,-246r0,294r38,0r0,38r-88,0r0,-370r88,0r0,38r-38,0","w":126},"\\":{"d":"10,-299r52,0r137,299r-51,0","w":208},"]":{"d":"57,48r0,-294r-38,0r0,-38r88,0r0,370r-88,0r0,-38r38,0","w":126},"^":{"d":"78,-122r-41,-25r65,-135r43,0r65,135r-41,25r-46,-97"},"_":{"d":"180,45r-180,0r0,-18r180,0r0,18","w":180},"a":{"d":"118,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42xm224,-185r0,185r-66,0v-1,-6,2,-16,-1,-21v-49,63,-149,5,-149,-72v0,-77,95,-131,150,-74r0,-18r66,0","w":245},"b":{"d":"19,0r0,-299r66,0r0,132v54,-57,150,-3,150,74v0,77,-99,134,-150,72r0,21r-66,0xm125,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42","w":245},"c":{"d":"155,-180r0,55v-28,-26,-79,-10,-79,32v0,42,51,60,79,33r0,56v-68,31,-147,-14,-147,-86v0,-74,79,-124,147,-90","w":173},"d":{"d":"161,0v-1,-6,2,-16,-1,-21v-49,63,-149,6,-149,-72v0,-78,94,-131,150,-74r0,-132r65,0r0,299r-65,0xm121,-134v-27,0,-43,19,-43,42v0,23,16,41,43,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42","w":245},"e":{"d":"75,-119r75,0v-5,-38,-70,-39,-75,0xm209,-57v-9,41,-48,62,-94,63v-61,0,-107,-34,-107,-98v0,-62,42,-99,102,-99v66,0,103,42,101,110r-138,0v-6,43,55,55,73,24r63,0","w":219},"f":{"d":"28,-185v-12,-77,41,-135,111,-111r0,57v-20,-12,-49,-10,-45,24r0,30r45,0r0,54r-45,0r0,131r-66,0r0,-131r-23,0r0,-54r23,0","w":139,"k":{"s":-7}},"g":{"d":"86,22v3,11,17,18,31,18v38,0,43,-27,42,-62v-52,58,-150,10,-150,-69v0,-78,97,-135,150,-74r0,-20r65,0r0,167v0,78,-39,110,-107,110v-42,0,-99,-21,-105,-70r74,0xm119,-135v-27,0,-42,18,-42,41v0,23,15,42,42,42v27,0,42,-19,42,-42v0,-23,-15,-41,-42,-41","w":243},"h":{"d":"22,-299r65,0r1,138v36,-55,128,-31,128,48r0,113r-65,0r0,-95v0,-22,-4,-44,-30,-44v-56,0,-27,87,-34,139r-65,0r0,-299","w":237},"i":{"d":"87,-185r0,185r-65,0r0,-185r65,0xm54,-292v20,0,37,16,37,36v0,20,-17,37,-37,37v-20,0,-36,-17,-36,-37v0,-20,16,-36,36,-36","w":108},"j":{"d":"87,-185r0,277r-65,0r0,-277r65,0xm54,-292v20,0,37,16,37,36v0,20,-17,37,-37,37v-20,0,-36,-17,-36,-37v0,-20,16,-36,36,-36","w":108},"k":{"d":"87,-299r0,181r68,-67r90,0r-93,86r99,99r-92,0r-72,-75r0,75r-65,0r0,-299r65,0","w":247},"l":{"d":"87,-299r0,299r-65,0r0,-299r65,0","w":108},"m":{"d":"87,-185v1,7,-2,18,1,23v28,-43,98,-38,121,6v13,-23,38,-35,63,-35v90,-1,57,111,63,191r-66,0r0,-88v0,-19,1,-51,-27,-51v-30,0,-31,29,-31,51r0,88r-66,0r0,-88v0,-21,0,-52,-29,-52v-29,0,-29,31,-29,52r0,88r-65,0r0,-185r65,0","w":356},"n":{"d":"87,-185v1,7,-2,18,1,24v15,-22,33,-30,59,-30v93,-2,65,107,69,191r-65,0r0,-90v0,-18,2,-49,-30,-49v-57,0,-26,87,-34,139r-65,0r0,-185r65,0","w":237},"o":{"d":"119,-191v59,0,111,36,111,99v0,63,-52,98,-111,98v-59,0,-111,-35,-111,-98v0,-63,52,-99,111,-99xm119,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42","w":238},"p":{"d":"85,-185v1,6,-2,16,1,21v49,-63,149,-5,149,72v0,77,-95,131,-150,74r0,110r-66,0r0,-277r66,0xm125,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42","w":245},"q":{"d":"226,-185r0,277r-65,0r0,-110v-55,57,-150,4,-150,-74v0,-78,98,-134,150,-72r0,-21r65,0xm121,-134v-27,0,-43,19,-43,42v0,23,16,41,43,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42","w":245},"r":{"d":"87,-185v1,10,-2,23,1,31v16,-26,37,-35,72,-33r0,63v-39,-18,-73,5,-73,49r0,75r-65,0r0,-185r65,0","w":163,"k":{"g":20,"q":33,"z":20,"a":13,"\u00e6":13,"\u00e1":13,"\u00e2":13,"\u00e4":13,"\u00e0":13,"\u00e5":13,"\u00e3":13,"c":33,"\u00e7":33,"e":27,"\u00e9":27,"\u00ea":27,"\u00eb":27,"\u00e8":27}},"s":{"d":"166,-179r-22,42v-16,-7,-49,-18,-56,3v0,13,20,15,29,17v31,6,54,20,54,54v0,79,-108,83,-162,48r24,-46v13,9,36,19,52,19v8,0,20,-4,20,-14v0,-14,-20,-16,-41,-21v-21,-5,-41,-15,-41,-48v2,-68,87,-79,143,-54","w":184},"t":{"d":"93,-131r0,131r-65,0r0,-131r-22,0r0,-54r22,0r0,-55r65,0r0,55r37,0r0,54r-37,0","w":129},"u":{"d":"21,-185r65,0r0,99v0,23,6,40,33,40v58,0,25,-88,33,-139r65,0r0,112v0,61,-43,79,-98,79v-55,0,-98,-18,-98,-79r0,-112","w":237},"v":{"d":"68,-185r44,95r44,-95r74,0r-97,185r-42,0r-96,-185r73,0","w":224,"k":{"W":27,"y":50,"\u00fd":50,"\u00ff":50,"Y":46,"\u00dd":46,"i":-6,"\u00ed":-6,"\u00ee":-6,"\u00ef":-6,"\u00ec":-6}},"w":{"d":"67,-185r46,100r47,-100r39,0r46,100r47,-100r72,0r-97,185r-42,0r-46,-101r-45,101r-43,0r-96,-185r72,0","w":358,"k":{"T":-6,"V":-14,"W":33,"y":33,"\u00fd":33,"\u00ff":33,"Y":-7,"\u00dd":-7,"A":6,"\u00c6":6,"\u00c1":6,"\u00c2":6,"\u00c4":6,"\u00c0":6,"\u00c5":6,"\u00c3":6,",":6,".":-6,"f":-7,"\u00df":-7,"i":7,"\u00ed":7,"\u00ee":7,"\u00ef":7,"\u00ec":7}},"x":{"d":"87,-100r-75,-85r83,0r33,38r33,-38r85,0r-76,85r92,100r-86,0r-48,-55r-47,55r-86,0","w":256},"y":{"d":"84,-25r-89,-160r75,0r50,95r48,-95r74,0r-148,277r-73,0","w":235,"k":{"T":14,"i":29,"\u00ed":29,"\u00ee":29,"\u00ef":29,"\u00ec":29}},"z":{"d":"112,-54r78,0r0,54r-187,0r87,-130r-76,0r0,-55r185,0","w":201},"{":{"d":"13,-82r0,-37v7,0,25,2,25,-19r0,-91v7,-55,30,-58,76,-55r0,43v-63,-8,10,136,-60,141v11,1,34,4,34,42r0,80v-3,13,7,24,26,21r0,43v-46,2,-76,1,-76,-54r0,-91v0,-25,-18,-23,-25,-23","w":126},"|":{"d":"131,-283r0,360r-54,0r0,-360r54,0","w":208},"}":{"d":"114,-119r0,37v-7,0,-25,-2,-25,23r0,91v-7,54,-30,57,-76,54r0,-43v47,5,18,-62,26,-101v0,-40,25,-39,34,-43v-11,-2,-34,-7,-34,-38r0,-81v3,-13,-7,-24,-26,-21r0,-43v46,-2,76,-1,76,55r0,91v0,21,18,19,25,19","w":126},"~":{"d":"81,-142v29,-1,58,37,85,38v10,0,18,-20,22,-30r41,35v-13,21,-33,56,-63,56v-33,0,-60,-38,-84,-38v-9,0,-19,18,-24,30r-40,-35v15,-19,33,-56,63,-56"},"\u00a1":{"d":"69,-192v23,0,42,20,42,43v0,23,-19,42,-42,42v-23,0,-42,-19,-42,-42v0,-23,19,-43,42,-43xm35,-92r68,0r0,179r-68,0r0,-179","w":138},"\u00a2":{"d":"142,-4r0,-35v-50,-2,-91,-47,-91,-97v0,-54,38,-93,91,-98r0,-33r33,0r0,35r21,6r0,59v-25,-28,-77,-10,-77,30v0,39,51,59,77,31r0,58v-7,3,-14,5,-21,6r0,38r-33,0"},"\u00a3":{"d":"46,-135v-41,-67,19,-141,92,-141v71,0,99,31,100,102r-70,0v3,-27,-10,-47,-33,-47v-44,0,-39,60,-19,86r56,0r0,27r-51,0v4,12,5,35,0,48v21,7,71,30,76,-4r43,0v-2,40,-24,70,-66,70v-32,0,-63,-19,-95,-19v-9,0,-20,3,-23,13r-47,0v6,-31,28,-64,62,-64v7,-15,3,-31,-6,-44r-58,0r0,-27r39,0"},"\u00a5":{"d":"228,-161r-51,0r-20,31r71,0r0,27r-71,0r0,103r-67,0r0,-103r-72,0r0,-27r72,0r-21,-31r-51,0r0,-27r33,0r-55,-83r80,0r47,73r48,-73r80,0r-56,83r33,0r0,27"},"\u00a7":{"d":"103,-97r60,30v31,-45,-49,-57,-76,-77v-22,15,-6,42,16,47xm203,-212r-57,0v-2,-25,-44,-31,-46,-3v7,32,51,34,74,52v30,15,53,28,53,65v0,23,-12,43,-30,57v49,53,-9,124,-76,124v-50,0,-103,-27,-100,-84r66,0v-4,35,61,47,63,9v-21,-56,-130,-41,-129,-117v0,-23,13,-45,30,-59v-42,-47,6,-111,66,-111v43,0,84,19,86,67"},"\u00a4":{"d":"18,-55r23,-23v-23,-29,-24,-88,0,-117r-23,-25r22,-22r24,24v30,-24,89,-26,118,0r24,-24r23,22r-23,23v25,30,27,89,0,118r23,24r-21,23r-24,-23v-29,25,-91,25,-120,-1r-24,24xm125,-183v-27,0,-48,21,-48,48v0,27,21,45,48,45v27,0,47,-18,47,-45v0,-27,-20,-48,-47,-48"},"'":{"d":"14,-271r62,0r-10,119r-42,0","w":90},"\u00ab":{"d":"152,-115r46,62r-37,26r-62,-88r62,-89r36,25xm62,-115r46,62r-37,26r-62,-88r62,-89r36,25","w":217},"\u00b7":{"d":"62,-134v23,0,42,19,42,42v0,23,-19,42,-42,42v-23,0,-42,-19,-42,-42v0,-23,19,-42,42,-42","w":123},"\u00b6":{"d":"95,-271r135,0r0,32r-23,0r0,300r-37,0r0,-299r-33,0r0,299r-37,0r0,-165v-42,-4,-77,-22,-83,-78v-5,-44,36,-89,78,-89"},"\u00bb":{"d":"19,-53r47,-62r-46,-64r36,-25r62,89r-62,88xm109,-53r46,-62r-45,-64r36,-25r62,89r-62,88","w":217},"\u00bf":{"d":"110,95v-49,0,-94,-38,-94,-85v0,-41,28,-65,65,-77r0,-26r66,0r0,70v-28,-7,-60,5,-61,34v0,15,11,27,26,27v17,0,25,-13,25,-28r72,0v0,55,-48,85,-99,85xm113,-192v23,0,42,20,42,43v0,23,-19,42,-42,42v-23,0,-42,-19,-42,-42v0,-23,19,-43,42,-43","w":214},"`":{"d":"27,-266r40,-29r51,62r-29,21","w":144},"\u00b4":{"d":"118,-266r-62,54r-29,-21r51,-62","w":144},"\u00af":{"d":"27,-271r163,0r0,39r-163,0r0,-39","w":217},"\u00a8":{"d":"63,-288v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35xm155,-288v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35","w":217},"\u00b8":{"d":"109,34r-54,51r-28,-17r47,-57","w":136},"\u00c6":{"d":"169,-101r-29,-81r-31,81r60,0xm206,0r-18,-47r-98,0r-17,47r-74,0r104,-271r167,0r22,59r-90,0r17,46r89,0r22,59r-89,0r17,47r90,0r21,60r-163,0","w":369},"\u00aa":{"d":"75,-194v15,0,28,-12,28,-26v0,-14,-13,-25,-28,-25v-15,0,-27,11,-27,25v0,14,12,26,27,26xm101,-164v-1,-4,2,-10,-1,-12v-32,36,-102,2,-96,-44v-5,-47,63,-79,97,-44r0,-11r43,0r0,111r-43,0","w":147},"\u00d8":{"d":"94,-99r104,-103v-64,-37,-146,35,-104,103xm227,-173r-106,103v61,40,143,-32,106,-103xm8,-14r32,-32v-19,-25,-31,-58,-31,-95v-2,-117,148,-178,240,-111r35,-34r28,29r-33,32v19,22,31,51,31,84v0,124,-145,191,-241,122r-33,33","w":319},"\u00ba":{"d":"74,-279v39,0,72,21,72,59v0,38,-33,59,-72,59v-39,0,-72,-21,-72,-59v0,-38,33,-59,72,-59xm74,-244v-15,0,-27,10,-27,24v0,14,12,25,27,25v15,0,27,-11,27,-25v0,-14,-12,-24,-27,-24","w":147},"\u00e6":{"d":"195,-119r76,0v-5,-38,-70,-38,-76,0xm134,-58v-4,-26,-60,-28,-63,-1v3,28,57,27,63,1xm328,-57v-11,67,-132,89,-168,27v-18,23,-46,36,-75,36v-35,0,-77,-18,-77,-59v0,-62,74,-74,124,-52v3,-51,-60,-40,-95,-28r0,-49v45,-14,99,-16,123,24v15,-22,43,-33,69,-33v66,0,103,42,101,110r-137,0v-6,42,54,55,72,24r63,0","w":338},"\u00f8":{"d":"80,-77r55,-54v-35,-12,-69,18,-55,54xm159,-108r-55,55v37,10,66,-17,55,-55xm8,-6r23,-23v-15,-16,-23,-37,-23,-63v-2,-86,101,-121,172,-84r26,-26r25,23r-24,23v14,16,23,38,23,64v2,85,-100,120,-172,84r-25,25","w":238},"\u00df":{"d":"22,-159v2,-49,-9,-93,22,-120v53,-46,163,-26,161,56v0,26,-12,42,-32,57v63,15,69,107,25,148v-24,22,-56,25,-92,24r0,-56v27,1,49,-15,49,-43v0,-27,-23,-46,-49,-44r0,-52v20,1,36,-8,36,-30v0,-17,-11,-27,-28,-27v-26,0,-27,21,-27,41r0,205r-65,0r0,-107r-19,0r0,-52r19,0","w":234},"\u00b9":{"d":"59,-240r-26,0r0,-36r71,0r0,163r-45,0r0,-127","w":148},"\u00ac":{"d":"162,-51r0,-58r-131,0r0,-54r185,0r0,112r-54,0"},"\u00b5":{"d":"21,-185r65,0r0,99v0,23,6,40,33,40v58,0,25,-88,33,-139r65,0r0,112v-1,85,-91,95,-131,61r0,104r-65,0r0,-277","w":237},"\u00d0":{"d":"94,-212r0,45r39,0r0,56r-39,0r0,51v54,3,94,-17,94,-76v0,-55,-38,-80,-94,-76xm23,0r0,-111r-30,0r0,-56r30,0r0,-104r91,0v86,0,147,56,147,135v0,80,-64,136,-146,136r-92,0","w":270},"\u00bd":{"d":"61,-236r-25,0r0,-35r71,0r0,162r-46,0r0,-127xm196,-107v1,-39,28,-62,69,-62v66,0,92,79,39,110r-27,23r57,0r0,36r-141,0r72,-72v17,-14,34,-61,0,-61v-15,0,-20,11,-19,26r-50,0xm222,-271r35,0r-157,271r-36,0","w":370},"\u00b1":{"d":"96,-184r0,-51r54,0r0,51r66,0r0,54r-66,0r0,51r-54,0r0,-51r-65,0r0,-54r65,0xm31,-54r185,0r0,54r-185,0r0,-54"},"\u00de":{"d":"23,0r0,-271r71,0r0,43v78,-5,135,13,136,89v1,80,-54,97,-136,92r0,47r-71,0xm94,-171r0,67v31,0,62,4,62,-33v0,-38,-30,-34,-62,-34","w":237},"\u00bc":{"d":"271,-66v-1,-20,2,-45,-1,-63r-41,63r42,0xm232,-271r35,0r-157,271r-35,0xm61,-236r-25,0r0,-35r71,0r0,162r-46,0r0,-127xm313,-66r21,0r0,32r-21,0r0,34r-42,0r0,-34r-86,0r0,-27r68,-102r60,0r0,97","w":370},"\u00f7":{"d":"31,-120r185,0r0,54r-185,0r0,-54xm123,-46v14,0,26,12,26,26v0,14,-12,26,-26,26v-14,0,-25,-12,-25,-26v0,-14,11,-26,25,-26xm123,-191v14,0,26,12,26,26v0,14,-12,26,-26,26v-14,0,-25,-12,-25,-26v0,-14,11,-26,25,-26"},"\u00a6":{"d":"131,-58r0,90r-54,0r0,-90r54,0xm131,-238r0,90r-54,0r0,-90r54,0","w":208},"\u00b0":{"d":"126,-224v0,30,-24,53,-54,53v-30,0,-54,-23,-54,-53v0,-30,24,-55,54,-55v30,0,54,25,54,55xm95,-225v0,-13,-10,-23,-23,-23v-13,0,-23,10,-23,23v0,13,10,24,23,24v13,0,23,-11,23,-24","w":144},"\u00fe":{"d":"85,-299r1,135v49,-63,149,-5,149,72v0,77,-95,131,-150,74r0,110r-66,0r0,-391r66,0xm125,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42","w":245},"\u00be":{"d":"289,-66v-1,-20,2,-45,-1,-63r-41,63r42,0xm263,-271r35,0r-157,271r-36,0xm331,-66r21,0r0,32r-21,0r0,34r-42,0r0,-34r-86,0r0,-27r68,-102r60,0r0,97xm65,-155v1,13,10,23,24,23v14,0,25,-9,25,-22v0,-15,-16,-25,-33,-21r0,-28v15,1,25,-5,25,-18v0,-10,-8,-16,-18,-16v-12,0,-19,9,-19,19r-42,0v-1,-63,122,-74,122,-6v0,13,-6,26,-19,33v59,25,19,95,-39,95v-37,0,-73,-25,-73,-59r47,0","w":370},"\u00b2":{"d":"141,-224v0,37,-34,56,-56,75r58,0r0,36r-142,0r72,-72v18,-14,35,-61,0,-61v-15,0,-21,13,-18,26r-51,0v1,-37,27,-62,69,-62v37,0,68,22,68,58","w":148},"\u00ae":{"d":"144,7v-80,0,-143,-63,-143,-142v0,-80,63,-144,143,-144v79,0,143,64,143,144v0,79,-64,142,-143,142xm144,-27v61,0,109,-45,109,-108v0,-64,-48,-110,-109,-110v-62,0,-109,46,-109,110v0,63,47,108,109,108xm176,-126r36,63r-36,0r-33,-63r-23,0r0,63r-33,0r0,-148v56,5,131,-20,130,45v0,27,-15,38,-41,40xm120,-148v27,-3,69,11,66,-22v-2,-24,-42,-13,-66,-15r0,37","w":288},"\u00f0":{"d":"15,-268r38,-37v38,18,47,24,57,30r46,-25r23,27r-38,20v46,38,89,77,89,146v0,80,-56,113,-113,113v-46,0,-109,-29,-109,-98v0,-67,58,-102,119,-92v-12,-14,-25,-29,-40,-41r-47,25r-24,-25r39,-21v-13,-8,-26,-16,-40,-22xm119,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42","w":238},"\u00d7":{"d":"86,-92r-55,-55r38,-38r54,55r54,-55r38,38r-53,55r54,54r-39,38r-54,-54r-54,54r-38,-38"},"\u00b3":{"d":"1,-166r47,0v0,13,11,23,25,23v14,0,24,-9,24,-22v0,-15,-16,-24,-32,-20r0,-28v14,1,25,-6,25,-18v0,-10,-8,-17,-18,-17v-12,0,-19,9,-19,19r-43,0v-1,-64,122,-74,122,-6v0,13,-5,26,-18,33v60,26,18,95,-40,95v-37,0,-72,-26,-73,-59","w":148},"\u00a9":{"d":"144,7v-80,0,-143,-63,-143,-142v0,-80,63,-144,143,-144v79,0,143,64,143,144v0,79,-64,142,-143,142xm144,-27v61,0,109,-45,109,-108v0,-64,-48,-110,-109,-110v-62,0,-109,46,-109,110v0,63,47,108,109,108xm217,-165r-33,0v-18,-53,-79,-21,-79,27v0,27,17,56,45,56v17,0,33,-11,34,-28r33,0v-18,93,-153,57,-146,-27v-11,-89,132,-113,146,-28","w":288},"\u00c1":{"d":"189,-47r-97,0r-19,47r-74,0r104,-271r77,0r102,271r-75,0xm170,-101r-29,-87r-29,87r58,0xm193,-342r-61,54r-29,-21r50,-62","w":281},"\u00c2":{"d":"189,-47r-97,0r-19,47r-74,0r104,-271r77,0r102,271r-75,0xm170,-101r-29,-87r-29,87r58,0xm62,-315r78,-59r80,59r-28,30r-52,-40r-52,40","w":281},"\u00c4":{"d":"189,-47r-97,0r-19,47r-74,0r104,-271r77,0r102,271r-75,0xm170,-101r-29,-87r-29,87r58,0xm95,-364v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35xm187,-364v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35","w":281},"\u00c0":{"d":"189,-47r-97,0r-19,47r-74,0r104,-271r77,0r102,271r-75,0xm170,-101r-29,-87r-29,87r58,0xm88,-342r40,-29r51,62r-29,21","w":281},"\u00c5":{"d":"189,-47r-97,0r-19,47r-74,0r104,-271r77,0r102,271r-75,0xm170,-101r-29,-87r-29,87r58,0xm85,-322v0,-57,110,-57,111,-1v0,57,-110,57,-111,1xm162,-323v-1,-21,-41,-21,-42,0v1,22,41,22,42,0","w":281},"\u00c3":{"d":"189,-47r-97,0r-19,47r-74,0r104,-271r77,0r102,271r-75,0xm170,-101r-29,-87r-29,87r58,0xm69,-298v-2,-29,14,-55,40,-56v26,-2,64,28,73,-1r30,0v-2,26,-15,57,-46,57v-22,0,-60,-30,-67,0r-30,0","w":281},"\u00c7":{"d":"9,-135v0,-100,109,-178,208,-130r0,85v-37,-55,-134,-29,-134,45v0,73,95,98,134,45r0,85v-102,42,-208,-31,-208,-130xm169,34r-55,51r-28,-17r47,-57","w":237},"\u00c9":{"d":"177,-212r-83,0r0,46r79,0r0,59r-79,0r0,47r83,0r0,60r-154,0r0,-271r154,0r0,59xm144,-342r-61,54r-29,-21r50,-62","w":198},"\u00ca":{"d":"177,-212r-83,0r0,46r79,0r0,59r-79,0r0,47r83,0r0,60r-154,0r0,-271r154,0r0,59xm20,-315r78,-59r80,59r-28,30r-52,-40r-52,40","w":198},"\u00cb":{"d":"177,-212r-83,0r0,46r79,0r0,59r-79,0r0,47r83,0r0,60r-154,0r0,-271r154,0r0,59xm53,-364v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35xm145,-364v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35","w":198},"\u00c8":{"d":"177,-212r-83,0r0,46r79,0r0,59r-79,0r0,47r83,0r0,60r-154,0r0,-271r154,0r0,59xm54,-342r40,-29r50,62r-29,21","w":198},"\u00cd":{"d":"94,-271r0,271r-71,0r0,-271r71,0xm109,-342r-61,54r-30,-21r51,-62","w":116},"\u00ce":{"d":"94,-271r0,271r-71,0r0,-271r71,0xm-15,-315r78,-59r80,59r-28,30r-52,-40r-52,40","w":116},"\u00cf":{"d":"94,-271r0,271r-71,0r0,-271r71,0xm12,-364v19,0,36,16,36,35v0,20,-17,36,-36,36v-20,0,-35,-16,-35,-36v0,-19,15,-35,35,-35xm104,-364v19,0,36,16,36,35v0,20,-17,36,-36,36v-20,0,-35,-16,-35,-36v0,-19,15,-35,35,-35","w":116},"\u00cc":{"d":"94,-271r0,271r-71,0r0,-271r71,0xm8,-342r40,-29r50,62r-29,21","w":116},"\u00d1":{"d":"23,0r0,-271r71,0r130,166r0,-166r70,0r0,271r-70,0r-130,-166r0,166r-71,0xm87,-298v-2,-29,14,-55,40,-56v26,-2,64,28,73,-1r30,0v-2,26,-15,57,-46,57v-22,0,-60,-30,-67,0r-30,0","w":317},"\u00d3":{"d":"159,-280v78,0,151,57,151,139v0,88,-64,150,-151,150v-87,0,-150,-62,-150,-150v0,-82,72,-139,150,-139xm159,-212v-42,0,-76,35,-76,72v0,47,34,81,76,81v42,0,77,-34,77,-81v0,-37,-35,-72,-77,-72xm212,-342r-61,54r-29,-21r50,-62","w":319},"\u00d4":{"d":"159,-280v78,0,151,57,151,139v0,88,-64,150,-151,150v-87,0,-150,-62,-150,-150v0,-82,72,-139,150,-139xm159,-212v-42,0,-76,35,-76,72v0,47,34,81,76,81v42,0,77,-34,77,-81v0,-37,-35,-72,-77,-72xm81,-315r78,-59r80,59r-28,30r-52,-40r-52,40","w":319},"\u00d6":{"d":"159,-280v78,0,151,57,151,139v0,88,-64,150,-151,150v-87,0,-150,-62,-150,-150v0,-82,72,-139,150,-139xm159,-212v-42,0,-76,35,-76,72v0,47,34,81,76,81v42,0,77,-34,77,-81v0,-37,-35,-72,-77,-72xm114,-364v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35xm206,-364v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35","w":319},"\u00d2":{"d":"159,-280v78,0,151,57,151,139v0,88,-64,150,-151,150v-87,0,-150,-62,-150,-150v0,-82,72,-139,150,-139xm159,-212v-42,0,-76,35,-76,72v0,47,34,81,76,81v42,0,77,-34,77,-81v0,-37,-35,-72,-77,-72xm107,-342r40,-29r51,62r-29,21","w":319},"\u00d5":{"d":"159,-280v78,0,151,57,151,139v0,88,-64,150,-151,150v-87,0,-150,-62,-150,-150v0,-82,72,-139,150,-139xm159,-212v-42,0,-76,35,-76,72v0,47,34,81,76,81v42,0,77,-34,77,-81v0,-37,-35,-72,-77,-72xm88,-298v-2,-29,14,-55,40,-56v26,-2,64,28,73,-1r30,0v-2,26,-15,57,-46,57v-22,0,-60,-30,-67,0r-30,0","w":319},"\u00da":{"d":"188,-271r70,0r0,152v0,35,0,71,-28,96v-47,42,-133,42,-180,0v-28,-25,-28,-61,-28,-96r0,-152r70,0r0,142v0,35,3,74,48,74v45,0,48,-39,48,-74r0,-142xm193,-342r-62,54r-29,-21r51,-62","w":280},"\u00db":{"d":"188,-271r70,0r0,152v0,35,0,71,-28,96v-47,42,-133,42,-180,0v-28,-25,-28,-61,-28,-96r0,-152r70,0r0,142v0,35,3,74,48,74v45,0,48,-39,48,-74r0,-142xm61,-315r78,-59r80,59r-28,30r-52,-40r-52,40","w":280},"\u00dc":{"d":"188,-271r70,0r0,152v0,35,0,71,-28,96v-47,42,-133,42,-180,0v-28,-25,-28,-61,-28,-96r0,-152r70,0r0,142v0,35,3,74,48,74v45,0,48,-39,48,-74r0,-142xm94,-364v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35xm186,-364v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35","w":280},"\u00d9":{"d":"188,-271r70,0r0,152v0,35,0,71,-28,96v-47,42,-133,42,-180,0v-28,-25,-28,-61,-28,-96r0,-152r70,0r0,142v0,35,3,74,48,74v45,0,48,-39,48,-74r0,-142xm87,-342r40,-29r51,62r-29,21","w":280},"\u00dd":{"d":"93,-130r-100,-141r85,0r51,73r50,-73r85,0r-100,141r0,130r-71,0r0,-130xm188,-342r-61,54r-29,-21r50,-62","w":257,"k":{"f":29,"\u00df":29,"o":29,"\u00f8":29,"\u00f3":29,"\u00f4":29,"\u00f6":29,"\u00f2":29,"\u00f5":29,"z":22,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"c":40,"\u00e7":40,"s":27,";":27,"i":27,"\u00ed":27,"\u00ee":27,"\u00ef":27,"\u00ec":27,"p":27}},"\u00e1":{"d":"118,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42xm224,-185r0,185r-66,0v-1,-6,2,-16,-1,-21v-49,63,-149,5,-149,-72v0,-77,95,-131,150,-74r0,-18r66,0xm175,-266r-61,54r-29,-21r50,-62","w":245},"\u00e2":{"d":"118,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42xm224,-185r0,185r-66,0v-1,-6,2,-16,-1,-21v-49,63,-149,5,-149,-72v0,-77,95,-131,150,-74r0,-18r66,0xm44,-239r78,-59r80,59r-28,30r-52,-40r-52,40","w":245},"\u00e4":{"d":"118,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42xm224,-185r0,185r-66,0v-1,-6,2,-16,-1,-21v-49,63,-149,5,-149,-72v0,-77,95,-131,150,-74r0,-18r66,0xm77,-288v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35xm169,-288v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35","w":245},"\u00e0":{"d":"118,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42xm224,-185r0,185r-66,0v-1,-6,2,-16,-1,-21v-49,63,-149,5,-149,-72v0,-77,95,-131,150,-74r0,-18r66,0xm77,-266r40,-29r51,62r-29,21","w":245},"\u00e5":{"d":"118,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42xm224,-185r0,185r-66,0v-1,-6,2,-16,-1,-21v-49,63,-149,5,-149,-72v0,-77,95,-131,150,-74r0,-18r66,0xm68,-252v0,-57,109,-55,110,0v-1,57,-109,56,-110,0xm144,-252v-1,-21,-41,-21,-42,0v1,21,41,21,42,0","w":245},"\u00e3":{"d":"118,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42xm224,-185r0,185r-66,0v-1,-6,2,-16,-1,-21v-49,63,-149,5,-149,-72v0,-77,95,-131,150,-74r0,-18r66,0xm51,-222v-2,-29,14,-55,40,-56v25,-2,65,29,73,-1r31,0v-2,26,-16,57,-47,57v-22,0,-60,-30,-67,0r-30,0","w":245},"\u00e7":{"d":"155,-180r0,55v-28,-26,-79,-10,-79,32v0,42,51,60,79,33r0,56v-68,31,-147,-14,-147,-86v0,-74,79,-124,147,-90xm128,34r-54,51r-28,-17r47,-57","w":173},"\u00e9":{"d":"75,-119r75,0v-5,-38,-70,-39,-75,0xm209,-57v-9,41,-48,62,-94,63v-61,0,-107,-34,-107,-98v0,-62,42,-99,102,-99v66,0,103,42,101,110r-138,0v-6,43,55,55,73,24r63,0xm164,-266r-61,54r-30,-21r51,-62","w":219},"\u00ea":{"d":"75,-119r75,0v-5,-38,-70,-39,-75,0xm209,-57v-9,41,-48,62,-94,63v-61,0,-107,-34,-107,-98v0,-62,42,-99,102,-99v66,0,103,42,101,110r-138,0v-6,43,55,55,73,24r63,0xm31,-239r78,-59r80,59r-28,30r-52,-40r-52,40","w":219},"\u00eb":{"d":"75,-119r75,0v-5,-38,-70,-39,-75,0xm209,-57v-9,41,-48,62,-94,63v-61,0,-107,-34,-107,-98v0,-62,42,-99,102,-99v66,0,103,42,101,110r-138,0v-6,43,55,55,73,24r63,0xm64,-288v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35xm156,-288v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35","w":219},"\u00e8":{"d":"75,-119r75,0v-5,-38,-70,-39,-75,0xm209,-57v-9,41,-48,62,-94,63v-61,0,-107,-34,-107,-98v0,-62,42,-99,102,-99v66,0,103,42,101,110r-138,0v-6,43,55,55,73,24r63,0xm55,-266r40,-29r51,62r-29,21","w":219},"\u00ed":{"d":"87,-185r0,185r-65,0r0,-185r65,0xm105,-266r-61,54r-30,-21r51,-62","w":108},"\u00ee":{"d":"87,-185r0,185r-65,0r0,-185r65,0xm-25,-239r79,-59r79,59r-28,30r-51,-40r-52,40","w":108},"\u00ef":{"d":"87,-185r0,185r-65,0r0,-185r65,0xm8,-288v19,0,36,16,36,35v0,20,-17,36,-36,36v-20,0,-35,-16,-35,-36v0,-19,15,-35,35,-35xm100,-288v19,0,36,16,36,35v0,20,-17,36,-36,36v-20,0,-35,-16,-35,-36v0,-19,15,-35,35,-35","w":108},"\u00ec":{"d":"87,-185r0,185r-65,0r0,-185r65,0xm4,-266r40,-29r50,62r-29,21","w":108},"\u00f1":{"d":"87,-185v1,7,-2,18,1,24v15,-22,33,-30,59,-30v93,-2,65,107,69,191r-65,0r0,-90v0,-18,2,-49,-30,-49v-57,0,-26,87,-34,139r-65,0r0,-185r65,0xm48,-222v-5,-27,14,-55,39,-56v25,-1,65,29,73,-1r31,0v-2,26,-16,57,-47,57v-22,0,-60,-30,-67,0r-29,0","w":237},"\u00f3":{"d":"119,-191v59,0,111,36,111,99v0,63,-52,98,-111,98v-59,0,-111,-35,-111,-98v0,-63,52,-99,111,-99xm119,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42xm174,-266r-62,54r-29,-21r51,-62","w":238},"\u00f4":{"d":"119,-191v59,0,111,36,111,99v0,63,-52,98,-111,98v-59,0,-111,-35,-111,-98v0,-63,52,-99,111,-99xm119,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42xm40,-239r78,-59r80,59r-28,30r-52,-40r-51,40","w":238},"\u00f6":{"d":"119,-191v59,0,111,36,111,99v0,63,-52,98,-111,98v-59,0,-111,-35,-111,-98v0,-63,52,-99,111,-99xm119,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42xm73,-288v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35xm165,-288v19,0,36,16,36,35v0,20,-17,36,-36,36v-20,0,-35,-16,-35,-36v0,-19,15,-35,35,-35","w":238},"\u00f2":{"d":"119,-191v59,0,111,36,111,99v0,63,-52,98,-111,98v-59,0,-111,-35,-111,-98v0,-63,52,-99,111,-99xm119,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42xm65,-266r40,-29r51,62r-30,21","w":238},"\u00f5":{"d":"119,-191v59,0,111,36,111,99v0,63,-52,98,-111,98v-59,0,-111,-35,-111,-98v0,-63,52,-99,111,-99xm119,-134v-27,0,-42,19,-42,42v0,23,15,41,42,41v27,0,42,-18,42,-41v0,-23,-15,-42,-42,-42xm48,-222v-3,-30,13,-55,39,-56v26,-2,65,29,74,-1r30,0v-2,26,-16,57,-47,57v-22,0,-59,-29,-67,0r-29,0","w":238},"\u00fa":{"d":"21,-185r65,0r0,99v0,23,6,40,33,40v58,0,25,-88,33,-139r65,0r0,112v0,61,-43,79,-98,79v-55,0,-98,-18,-98,-79r0,-112xm175,-266r-62,54r-29,-21r51,-62","w":237},"\u00fb":{"d":"21,-185r65,0r0,99v0,23,6,40,33,40v58,0,25,-88,33,-139r65,0r0,112v0,61,-43,79,-98,79v-55,0,-98,-18,-98,-79r0,-112xm40,-239r78,-59r80,59r-28,30r-52,-40r-52,40","w":237},"\u00fc":{"d":"21,-185r65,0r0,99v0,23,6,40,33,40v58,0,25,-88,33,-139r65,0r0,112v0,61,-43,79,-98,79v-55,0,-98,-18,-98,-79r0,-112xm73,-288v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35xm165,-288v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35","w":237},"\u00f9":{"d":"21,-185r65,0r0,99v0,23,6,40,33,40v58,0,25,-88,33,-139r65,0r0,112v0,61,-43,79,-98,79v-55,0,-98,-18,-98,-79r0,-112xm63,-266r40,-29r50,62r-29,21","w":237},"\u00fd":{"d":"84,-25r-89,-160r75,0r50,95r48,-95r74,0r-148,277r-73,0xm177,-266r-61,54r-29,-21r51,-62","w":235,"k":{"T":14,"i":29,"\u00ed":29,"\u00ee":29,"\u00ef":29,"\u00ec":29}},"\u00ff":{"d":"84,-25r-89,-160r75,0r50,95r48,-95r74,0r-148,277r-73,0xm77,-288v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-36,-16,-36,-36v0,-19,16,-35,36,-35xm169,-288v19,0,35,16,35,35v0,20,-16,36,-35,36v-20,0,-35,-16,-35,-36v0,-19,15,-35,35,-35","w":235,"k":{"T":14,"i":29,"\u00ed":29,"\u00ee":29,"\u00ef":29,"\u00ec":29}},"\u00a0":{"w":123},"\u00ad":{"d":"19,-143r103,0r0,54r-103,0r0,-54","w":141}}});Cufon.registerFont({"w":246,"face":{"font-family":"Futura Std","font-weight":700,"font-style":"oblique","font-stretch":"normal","units-per-em":"360","panose-1":"2 11 8 2 2 2 4 2 2 4","ascent":"297","descent":"-63","x-height":"6","bbox":"-7 -374 450 110","underline-thickness":"18","underline-position":"-18","slope":"-9","stemh":"57","stemv":"66","unicode-range":"U+0020-U+00FF"},"glyphs":{" ":{"w":123},"!":{"d":"81,-77v23,0,40,19,36,42v-4,23,-26,42,-49,42v-23,0,-40,-19,-36,-42v4,-23,26,-42,49,-42xm50,-92r28,-179r68,0r-28,179r-68,0","w":138},"\"":{"d":"60,-271r61,0r-28,119r-42,0xm145,-271r61,0r-29,119r-41,0","w":180},"#":{"d":"137,-261r38,0r-26,73r37,0r25,-73r38,0r-25,73r28,0r-6,40r-35,0r-16,45r34,0r-7,41r-42,0r-22,62r-38,0r21,-62r-36,0r-21,62r-39,0r22,-62r-33,0r7,-41r40,0r16,-45r-34,0r6,-40r42,0xm135,-148r-15,45r36,0r17,-45r-38,0"},"$":{"d":"30,-31r38,-55v21,27,85,51,98,4v6,-19,-23,-26,-51,-34v-88,-26,-34,-153,41,-155r7,-44r34,0r-7,44v22,2,45,8,62,21r-35,52v-17,-20,-69,-28,-77,3v-4,17,19,24,31,28v39,14,74,28,66,78v-8,50,-41,76,-90,88r-7,45r-33,0r6,-43v-34,-1,-64,-14,-83,-32"},"%":{"d":"125,-275v40,0,70,23,63,66v-7,44,-43,67,-84,67v-41,0,-71,-23,-64,-67v7,-43,45,-66,85,-66xm119,-239v-34,-3,-52,60,-10,61v36,4,53,-60,10,-61xm291,-129v40,0,70,23,63,66v-7,44,-44,67,-85,67v-41,0,-70,-23,-63,-67v7,-43,45,-66,85,-66xm285,-93v-36,-4,-53,60,-10,61v35,3,54,-60,10,-61xm279,-271r36,0r-201,271r-35,0","w":351},"&":{"d":"166,-67r-36,-46v-29,7,-45,56,-4,57v13,0,28,-5,40,-11xm169,-172v13,-7,28,-19,30,-34v2,-14,-5,-25,-19,-25v-33,1,-32,43,-11,59xm217,0r-19,-25v-59,44,-184,51,-173,-46v6,-44,39,-63,77,-78v-8,-17,-21,-28,-16,-55v7,-47,52,-75,96,-75v43,0,81,28,73,74v-5,34,-30,51,-61,65r29,36v15,-12,29,-24,42,-38r33,38r-43,40r50,64r-88,0","w":305},"(":{"d":"150,-262v-62,84,-95,207,-51,326r-43,22v-30,-49,-31,-128,-22,-189v9,-59,38,-132,81,-181","w":126},")":{"d":"8,64v62,-84,96,-208,51,-326r43,-22v58,129,18,280,-59,370","w":126},"*":{"d":"113,-271r33,0r-8,38r35,-20r12,27r-37,18r31,19r-21,27r-28,-21r-4,37r-33,0r8,-36r-33,19r-12,-27r35,-18r-31,-18r21,-28r28,20","w":173},"+":{"d":"116,-120r10,-65r54,0r-10,65r65,0r-9,54r-65,0r-11,66r-54,0r11,-66r-65,0r8,-54r66,0"},",":{"d":"66,-69r61,0r-85,120r-42,0","w":123},"-":{"d":"42,-143r103,0r-9,54r-103,0","w":141},".":{"d":"74,-77v23,0,37,19,35,42v-5,50,-92,57,-84,0v4,-23,26,-42,49,-42","w":123},"\/":{"d":"194,-299r52,0r-190,332r-52,0","w":208},"0":{"d":"168,-282v81,0,103,75,92,146v-11,71,-57,147,-138,147v-81,0,-103,-76,-92,-147v11,-71,57,-146,138,-146xm158,-220v-36,0,-54,58,-58,84v-4,26,-4,85,32,85v36,0,54,-59,58,-85v4,-26,4,-84,-32,-84"},"1":{"d":"130,-212r-39,0r10,-59r109,0r-43,271r-70,0"},"2":{"d":"150,-60r89,0r-9,60r-218,0r130,-121v19,-17,37,-41,41,-66v3,-17,-6,-35,-25,-35v-23,1,-36,19,-36,44r-77,0v12,-62,58,-104,122,-104v57,0,98,37,90,96v-8,61,-67,91,-107,126"},"3":{"d":"57,-193v14,-52,53,-88,115,-89v49,0,82,28,74,79v-3,22,-15,44,-37,55v28,8,37,41,33,69v-12,87,-140,121,-196,59v-15,-16,-25,-44,-20,-68r72,0v-4,22,10,38,32,38v45,0,63,-72,12,-72v-4,0,-9,1,-13,2r8,-47v40,11,63,-56,19,-58v-18,0,-31,14,-34,32r-65,0"},"4":{"d":"220,-110r33,0r-8,54r-33,0r-9,56r-65,0r9,-56r-132,0r7,-45r131,-170r93,0xm155,-110r16,-105r-80,105r64,0"},"5":{"d":"236,-212r-94,0r-9,31v69,-14,111,31,103,96v-11,84,-139,127,-214,71r21,-66v30,36,111,49,120,-9v9,-53,-65,-54,-105,-35r46,-147r142,0"},"6":{"d":"153,-271r80,0r-91,92v65,-28,122,21,111,87v-16,92,-133,133,-206,79v-78,-99,53,-195,106,-258xm129,-45v50,0,74,-87,14,-89v-24,0,-48,20,-52,44v-4,25,14,45,38,45"},"7":{"d":"172,-212r-113,0r9,-59r223,0r-198,271r-78,0"},"8":{"d":"161,-233v-35,-4,-51,60,-10,61v33,4,51,-60,10,-61xm141,-114v-37,-4,-55,66,-10,67v38,4,54,-66,10,-67xm168,-282v46,0,88,25,80,77v-5,29,-26,54,-52,62v31,11,48,36,42,72v-9,56,-69,82,-116,82v-47,0,-100,-26,-91,-82v6,-36,31,-61,65,-72v-23,-8,-38,-33,-33,-62v8,-52,59,-77,105,-77"},"9":{"d":"137,0r-80,0r91,-92v-65,29,-122,-22,-111,-88v16,-91,132,-131,206,-79v78,99,-53,196,-106,259xm161,-226v-50,-6,-74,88,-14,89v51,5,77,-88,14,-89"},":":{"d":"74,-77v23,0,37,19,35,42v-5,50,-92,57,-84,0v4,-23,26,-42,49,-42xm45,-156v5,-50,92,-57,84,0v-4,23,-26,42,-49,42v-23,0,-37,-19,-35,-42","w":123},";":{"d":"60,-69r62,0r-85,120r-42,0xm110,-198v23,0,39,19,35,42v-4,23,-26,42,-49,42v-23,0,-39,-19,-35,-42v4,-23,26,-42,49,-42","w":123},"<":{"d":"47,-71r7,-43r186,-66r-9,54r-103,34r93,33r-9,54"},"=":{"d":"57,-163r185,0r-9,54r-184,0xm44,-76r184,0r-9,54r-184,0"},">":{"d":"230,-114r-7,43r-187,66r9,-54r104,-34r-94,-33r9,-54"},"?":{"d":"36,-194v8,-71,117,-115,172,-62v51,49,5,130,-57,140r-4,25r-66,0r12,-70v28,7,60,-5,66,-33v3,-15,-7,-27,-22,-27v-17,0,-26,12,-29,27r-72,0xm113,-77v23,0,40,19,36,42v-4,23,-26,42,-49,42v-23,0,-40,-19,-36,-42v4,-23,26,-42,49,-42","w":214},"@":{"d":"121,-127v-3,18,4,33,22,33v35,0,63,-75,20,-75v-21,0,-39,22,-42,42xm246,-205r-33,93v-3,9,-11,25,0,24v13,-1,38,-31,45,-62v13,-61,-26,-95,-81,-95v-60,0,-107,47,-120,109v-20,95,86,131,158,95r26,24v-27,13,-62,24,-101,24v-77,0,-129,-61,-117,-143v15,-108,152,-191,240,-111v66,60,2,196,-68,192v-10,0,-18,-9,-19,-21v-32,40,-109,18,-99,-46v9,-58,84,-120,128,-64r6,-19r35,0","w":266},"A":{"d":"197,-47r-97,0r-27,47r-74,0r147,-271r77,0r59,271r-75,0xm186,-101r-15,-87r-43,87r58,0","w":281},"B":{"d":"111,-112r-9,58v28,0,64,4,70,-29v6,-35,-34,-28,-61,-29xm242,-76v-17,94,-119,74,-219,76r43,-271v80,3,187,-21,170,70v-4,24,-14,45,-38,56v38,5,51,31,44,69xm128,-217r-8,52v24,0,46,0,50,-26v5,-27,-20,-26,-42,-26","w":243},"C":{"d":"259,-265r-13,85v-38,-58,-133,-22,-142,45v-10,77,85,96,127,45r-13,85v-98,41,-204,-24,-187,-130v15,-92,125,-179,228,-130","w":237},"D":{"d":"23,0r43,-271r100,0v76,0,129,59,117,135v-12,76,-85,136,-160,136r-100,0xm127,-212r-24,152v56,3,95,-17,106,-76v10,-55,-26,-80,-82,-76","w":270},"E":{"d":"211,-212r-84,0r-7,46r79,0r-9,59r-79,0r-8,47r84,0r-10,60r-154,0r43,-271r154,0","w":198},"F":{"d":"212,-212r-85,0r-7,46r77,0r-9,59r-77,0r-17,107r-71,0r43,-271r156,0","w":195,"k":{"Y":-7,"\u00dd":-7}},"G":{"d":"318,-152v-4,82,-78,161,-165,161v-85,0,-135,-58,-122,-143v14,-88,83,-146,170,-146v56,0,95,25,110,76r-71,28v-31,-90,-129,-23,-136,42v-4,42,12,85,58,85v31,0,56,-16,64,-47r-57,0r9,-56r140,0","w":303},"H":{"d":"120,-167r102,0r16,-104r71,0r-43,271r-71,0r18,-111r-102,0r-17,111r-71,0r43,-271r70,0","w":289},"I":{"d":"136,-271r-42,271r-71,0r43,-271r70,0","w":116},"J":{"d":"127,-271r70,0r-29,183v-9,57,-45,95,-105,95v-30,0,-51,-15,-63,-40r47,-43v6,11,16,23,25,23v21,0,24,-25,27,-40","w":176},"K":{"d":"119,-159r103,-112r88,0r-128,128r95,143r-92,0r-73,-118r-18,118r-71,0r43,-271r70,0","w":272},"L":{"d":"136,-271r-33,211r85,0r-10,60r-155,0r43,-271r70,0","w":178,"k":{"s":20,"u":46,"\u00fa":46,"\u00fb":46,"\u00fc":46,"\u00f9":46,":":46}},"M":{"d":"7,0r89,-271r69,0r33,145r81,-145r70,0r-2,271r-71,0r5,-156r-90,156r-28,0r-38,-156r-48,156r-70,0","w":353},"N":{"d":"23,0r43,-271r70,0r104,166r26,-166r71,0r-43,271r-70,0r-104,-166r-26,166r-71,0","w":317},"O":{"d":"204,-280v78,0,141,57,128,139v-14,88,-87,150,-174,150v-87,0,-140,-62,-126,-150v13,-82,94,-139,172,-139xm193,-212v-42,0,-82,35,-88,72v-8,47,22,81,64,81v42,0,81,-34,89,-81v6,-37,-23,-72,-65,-72","w":319},"P":{"d":"23,0r43,-271v97,0,210,-16,192,89v-14,78,-64,98,-150,92r-14,90r-71,0xm127,-215r-10,68v33,0,62,4,68,-33v6,-39,-26,-35,-58,-35","w":237,"k":{"Y":20,"\u00dd":20,"A":46,"\u00c6":46,"\u00c1":46,"\u00c2":46,"\u00c4":46,"\u00c0":46,"\u00c5":46,"\u00c3":46,"p":20}},"Q":{"d":"222,-114r17,19v38,-41,15,-117,-46,-117v-42,0,-82,35,-88,72v-9,55,34,94,87,77r-37,-43xm319,7r-66,10r-18,-26v-101,53,-227,-13,-203,-132v16,-81,94,-139,172,-139v85,0,141,57,127,145v-5,36,-23,67,-50,95","w":319},"R":{"d":"181,-111r68,111r-88,0r-51,-104r-16,104r-71,0r43,-271v92,0,204,-16,187,83v-6,37,-32,70,-72,77xm128,-217r-11,67v28,0,56,-1,62,-34v6,-32,-24,-33,-51,-33","w":244,"k":{"v":20,"V":13,"w":33,"W":27}},"S":{"d":"241,-256r-37,54v-20,-21,-68,-28,-78,5v-2,23,26,25,45,31v36,11,59,31,55,75v-7,91,-142,129,-212,67r40,-57v21,27,85,46,96,1v5,-20,-23,-27,-37,-31v-42,-13,-70,-24,-62,-77v13,-87,118,-115,190,-68","w":221},"T":{"d":"165,-212r-34,212r-71,0r34,-212r-58,0r9,-59r187,0r-9,59r-58,0","w":191,"k":{"\u00fc":14,"\u00f2":13,"\u00f6":13,"\u00e8":27,"\u00eb":27,"\u00ea":27,"\u00e3":13,"\u00e5":13,"\u00e0":13,"\u00e4":7,"\u00e2":13,"e":27,"\u00e9":27,"r":50,"s":46}},"U":{"d":"231,-271r70,0r-24,152v-5,35,-12,71,-43,96v-49,40,-137,44,-180,0v-24,-25,-19,-61,-14,-96r24,-152r71,0r-22,142v-6,35,-9,74,36,74v45,0,53,-39,59,-74","w":280},"V":{"d":"114,-271r40,164r92,-164r76,0r-159,271r-54,0r-72,-271r77,0","w":273,"k":{"\u00f6":-6,"\u00f4":-6,"\u00e8":33,"\u00eb":33,"\u00ea":33,"\u00e3":-14,"\u00e5":-14,"\u00e0":-14,"\u00e4":-14,"\u00e2":-14,"f":-6,"\u00df":-6,"o":-6,"\u00f8":-6,"\u00f3":-6,"\u00f2":-6,"\u00f5":-6,"t":-6,"a":-14,"\u00e6":-14,"\u00e1":-14,"e":33,"\u00e9":33,"r":33,"s":-7,"u":-6,"\u00fa":-6,"\u00fb":-6,"\u00fc":-6,"\u00f9":-6,":":6,"-":6,";":-6,"i":-7,"\u00ed":-7,"\u00ee":-7,"\u00ef":-7,"\u00ec":-7}},"W":{"d":"111,-271r20,175r85,-175r56,0r26,175r79,-175r73,0r-129,271r-72,0r-24,-157r-78,157r-71,0r-39,-271r74,0","w":402,"k":{"\u00fc":11,"\u00f6":7,"\u00ea":11,"\u00e4":10,"f":7,"\u00df":7,"o":7,"\u00f8":7,"\u00f3":7,"\u00f4":7,"\u00f2":7,"\u00f5":7,"t":14}},"X":{"d":"126,-145r-67,-126r87,0r31,70r52,-70r87,0r-107,126r78,145r-85,0r-43,-89r-77,89r-85,0","w":284},"Y":{"d":"114,-130r-78,-141r85,0r39,73r62,-73r85,0r-123,141r-20,130r-71,0","w":257,"k":{"\u00fc":20,"\u00f6":29,"f":29,"\u00df":29,"o":29,"\u00f8":29,"\u00f3":29,"\u00f4":29,"\u00f2":29,"\u00f5":29,"z":22,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"c":40,"\u00e7":40,"s":27,";":27,"i":27,"\u00ed":27,"\u00ee":27,"\u00ef":27,"\u00ec":27,"p":27}},"Z":{"d":"132,-60r114,0r-9,60r-233,0r162,-212r-107,0r10,-59r224,0","w":254},"[":{"d":"108,-246r-47,294r39,0r-6,38r-89,0r59,-370r88,0r-6,38r-38,0","w":126},"\\":{"d":"57,-299r52,0r90,299r-51,0","w":208},"]":{"d":"50,48r46,-294r-38,0r6,-38r88,0r-58,370r-89,0r6,-38r39,0","w":126},"^":{"d":"98,-122r-38,-25r87,-135r43,0r43,135r-45,25r-30,-97"},"_":{"d":"173,45r-180,0r3,-18r180,0","w":180},"a":{"d":"139,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83xm253,-185r-29,185r-66,0r3,-21v-14,18,-39,27,-61,27v-55,0,-83,-46,-77,-99v9,-71,105,-133,161,-74r3,-18r66,0","w":245},"b":{"d":"19,0r48,-299r65,0r-21,132v57,-55,155,-8,138,74v-11,53,-54,99,-109,99v-23,1,-41,-11,-52,-27r-3,21r-66,0xm146,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83","w":245},"c":{"d":"183,-180r-8,55v-28,-27,-78,-7,-84,32v-7,43,45,59,73,33r-8,56v-68,31,-146,-12,-133,-86v12,-71,90,-124,160,-90","w":173},"d":{"d":"161,0v0,-7,4,-16,2,-21v-51,61,-152,10,-137,-72v13,-71,105,-133,161,-74r21,-132r65,0r-47,299r-65,0xm142,-134v-50,-4,-74,82,-13,83v51,5,72,-82,13,-83","w":245},"e":{"d":"93,-119r76,0v-2,-42,-67,-35,-76,0xm218,-57v-14,39,-55,63,-104,63v-61,0,-101,-34,-91,-98v10,-62,57,-99,117,-99v67,-1,97,45,84,110r-138,0v-12,44,49,54,69,24r63,0","w":219},"f":{"d":"114,-131r-20,131r-66,0r21,-131r-23,0r8,-54r23,0v0,-68,56,-137,129,-111r-9,57v-21,-13,-48,-8,-50,24r-4,30r45,0r-8,54r-46,0","w":139,"k":{"s":-7}},"g":{"d":"82,22v2,12,14,18,28,18v38,0,48,-27,52,-62v-55,56,-157,14,-139,-69v11,-53,54,-100,111,-100v23,-1,39,10,51,26r3,-20r65,0r-26,167v-13,78,-56,110,-124,110v-42,0,-96,-21,-94,-70r73,0xm140,-135v-51,-5,-73,82,-13,83v50,4,74,-82,13,-83","w":243},"h":{"d":"69,-299r65,0r-21,138v18,-20,38,-30,64,-30v96,1,45,123,39,191r-65,0r15,-95v3,-22,3,-44,-23,-44v-59,0,-41,90,-56,139r-65,0","w":237},"i":{"d":"116,-185r-29,185r-65,0r29,-185r65,0xm58,-256v3,-41,80,-51,73,0v-3,43,-79,51,-73,0","w":108},"j":{"d":"116,-185r-44,277r-65,0r44,-277r65,0xm58,-256v3,-41,80,-51,73,0v-3,43,-79,51,-73,0","w":108},"k":{"d":"134,-299r-28,181r78,-67r90,0r-106,86r83,99r-92,0r-60,-75r-12,75r-65,0r47,-299r65,0","w":247},"l":{"d":"134,-299r-47,299r-65,0r47,-299r65,0","w":108},"m":{"d":"116,-185r-3,23v32,-40,101,-41,121,6v17,-23,43,-35,68,-35v96,0,35,125,33,191r-66,0r14,-88v3,-19,9,-51,-19,-51v-30,0,-36,29,-39,51r-14,88r-66,0r14,-88v3,-21,9,-52,-20,-52v-29,0,-35,31,-38,52r-14,88r-65,0r29,-185r65,0","w":356},"n":{"d":"116,-185r-3,24v19,-22,38,-30,64,-30v99,2,43,122,39,191r-65,0r14,-90v3,-18,10,-49,-22,-49v-59,0,-40,90,-56,139r-65,0r29,-185r65,0","w":237},"o":{"d":"149,-191v59,0,106,36,96,99v-10,63,-68,98,-127,98v-59,0,-105,-35,-95,-98v10,-63,67,-99,126,-99xm140,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83","w":238},"p":{"d":"114,-185v0,7,-4,16,-2,21v52,-61,152,-10,137,72v-13,71,-104,133,-161,74r-18,110r-65,0r44,-277r65,0xm146,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83","w":245},"q":{"d":"255,-185r-44,277r-65,0r17,-110v-56,55,-156,8,-138,-74v11,-53,54,-99,109,-99v22,0,43,9,52,27r4,-21r65,0xm142,-134v-50,-4,-74,82,-13,83v51,5,72,-82,13,-83","w":245},"r":{"d":"116,-185r-4,31v19,-26,42,-35,78,-33r-10,63v-40,-19,-74,8,-81,49r-12,75r-65,0r29,-185r65,0","w":163,"k":{"g":20,"q":33,"z":20,"a":13,"\u00e6":13,"\u00e1":13,"\u00e2":13,"\u00e4":13,"\u00e0":13,"\u00e5":13,"\u00e3":13,"c":33,"\u00e7":33,"e":27,"\u00e9":27,"\u00ea":27,"\u00eb":27,"\u00e8":27}},"s":{"d":"194,-179r-29,42v-16,-8,-48,-17,-56,3v-2,13,18,15,27,17v30,6,51,20,45,54v-13,75,-113,86,-169,48r31,-46v18,13,57,33,71,5v2,-14,-18,-16,-37,-21v-20,-5,-40,-15,-34,-48v12,-65,92,-80,151,-54","w":184},"t":{"d":"114,-131r-21,131r-65,0r20,-131r-21,0r9,-54r21,0r9,-55r65,0r-9,55r37,0r-8,54r-37,0","w":129},"u":{"d":"50,-185r65,0r-15,99v-4,23,-1,40,26,40v27,0,35,-17,39,-40r16,-99r65,0r-17,112v-9,61,-56,79,-111,79v-55,0,-95,-18,-86,-79","w":237},"v":{"d":"97,-185r30,95r58,-95r74,0r-126,185r-42,0r-67,-185r73,0","w":224,"k":{"W":27,"y":50,"\u00fd":50,"\u00ff":50,"Y":46,"\u00dd":46,"i":-6,"\u00ed":-6,"\u00ee":-6,"\u00ef":-6,"\u00ec":-6}},"w":{"d":"96,-185r31,100r62,-100r39,0r30,100r63,-100r72,0r-126,185r-42,0r-30,-101r-61,101r-43,0r-67,-185r72,0","w":358,"k":{"T":-6,"V":-14,"W":33,"y":33,"\u00fd":33,"\u00ff":33,"Y":-7,"\u00dd":-7,"A":6,"\u00c6":6,"\u00c1":6,"\u00c2":6,"\u00c4":6,"\u00c0":6,"\u00c5":6,"\u00c3":6,",":6,".":-6,"f":-7,"\u00df":-7,"i":7,"\u00ed":7,"\u00ee":7,"\u00ef":7,"\u00ec":7}},"x":{"d":"103,-100r-62,-85r83,0r27,38r39,-38r85,0r-90,85r77,100r-86,0r-39,-55r-56,55r-86,0","w":256},"y":{"d":"88,-25r-64,-160r75,0r35,95r63,-95r74,0r-191,277r-74,0","w":235,"k":{"T":14,"i":29,"\u00ed":29,"\u00ee":29,"\u00ef":29,"\u00ec":29}},"z":{"d":"121,-54r78,0r-9,54r-187,0r107,-130r-75,0r9,-55r184,0","w":201},"{":{"d":"26,-82r6,-37v7,0,25,2,28,-19r15,-91v16,-54,35,-58,84,-55r-7,43v-19,-2,-30,8,-29,21r-13,81v-5,32,-31,34,-41,39v11,1,35,4,29,42r-13,80v-4,13,2,24,22,21r-7,43v-45,2,-76,1,-67,-54r15,-91v4,-25,-15,-23,-22,-23","w":126},"|":{"d":"87,-329r49,0r0,439r-49,0r0,-439","w":178},"}":{"d":"132,-119r-5,37v-7,0,-25,-2,-29,23r-14,91v-16,53,-36,57,-85,54r7,-43v19,2,30,-8,29,-21r13,-80v6,-40,30,-39,41,-43v-11,-2,-34,-7,-29,-38r13,-81v4,-13,-2,-24,-22,-21r7,-43v46,-2,76,-1,67,55r-14,91v-3,21,14,19,21,19","w":126},"~":{"d":"104,-142v29,-1,52,37,79,38v10,0,22,-20,27,-30r35,35v-16,21,-42,56,-72,56v-33,0,-54,-38,-78,-38v-9,0,-22,18,-29,30r-35,-35v18,-19,43,-56,73,-56"},"\u00a1":{"d":"51,-149v5,-51,92,-58,84,0v-4,23,-26,42,-49,42v-23,0,-37,-19,-35,-42xm50,-92r68,0r-28,179r-68,0","w":138},"\u00a2":{"d":"143,-4r5,-35v-50,-2,-84,-47,-76,-97v8,-54,53,-93,107,-98r5,-33r34,0r-6,35r20,6r-10,59v-25,-29,-75,-7,-81,30v-6,41,45,58,72,31r-9,58v-7,3,-14,5,-22,6r-6,38r-33,0"},"\u00a3":{"d":"173,6v-40,2,-88,-39,-117,-6r-47,0v10,-31,38,-64,72,-64v10,-15,7,-31,1,-44r-58,0r4,-27r39,0v-27,-74,40,-141,115,-141v71,0,94,31,84,102r-70,0v7,-23,-2,-47,-26,-47v-40,-1,-50,55,-32,86r56,0r-5,27r-51,0v2,12,-1,35,-8,48v21,9,69,28,77,-4r44,0v-9,37,-33,68,-78,70"},"\u00a5":{"d":"253,-161r-51,0r-25,31r71,0r-4,27r-71,0r-16,103r-67,0r17,-103r-72,0r4,-27r72,0r-16,-31r-51,0r4,-27r33,0r-42,-83r80,0r36,73r59,-73r80,0r-69,83r33,0"},"\u00a7":{"d":"118,-97r56,30v20,-14,12,-42,-10,-47r-55,-30v-23,12,-14,42,9,47xm236,-212r-56,0v0,-27,-45,-29,-45,-3v0,32,45,34,65,52v27,15,48,28,42,65v-4,23,-19,43,-39,57v41,62,-34,124,-95,124v-50,0,-98,-27,-87,-84r66,0v-4,19,12,33,30,33v15,0,29,-9,32,-24v3,-17,-15,-23,-26,-30v-34,-21,-94,-33,-85,-87v4,-23,20,-45,40,-59v-36,-57,30,-111,84,-111v43,0,79,19,74,67"},"\u00a4":{"d":"238,-197v22,37,6,95,-20,118r20,24r-25,23r-21,-23v-31,24,-92,27,-119,-1r-28,24r-19,-23r28,-23v-21,-36,-6,-93,18,-117r-19,-25r25,-22r21,24v31,-23,91,-27,118,0r28,-24r19,22xm153,-183v-54,-6,-80,94,-14,93v57,7,78,-93,14,-93"},"'":{"d":"57,-271r61,0r-28,119r-42,0","w":90},"\u00ab":{"d":"170,-115r36,62r-41,26r-48,-88r76,-89r32,25xm80,-115r37,62r-41,26r-48,-88r76,-89r32,25","w":217},"\u00b7":{"d":"35,-92v5,-50,92,-57,84,0v-4,23,-26,42,-49,42v-23,0,-37,-19,-35,-42","w":123},"\u00b6":{"d":"138,-271r135,0r-5,32r-24,0r-47,300r-36,0r47,-299r-33,0r-48,299r-36,0r26,-165v-41,-4,-74,-22,-71,-78v2,-44,50,-89,92,-89"},"\u00bb":{"d":"27,-53r57,-62r-35,-64r40,-25r47,89r-76,88xm117,-53r57,-62r-36,-64r40,-25r48,89r-76,88","w":217},"\u00bf":{"d":"162,-93r-11,70v-29,-7,-61,6,-67,34v-3,15,7,27,22,27v17,0,27,-13,29,-28r72,0v-11,75,-116,114,-171,63v-52,-48,-7,-130,56,-140r4,-26r66,0xm95,-149v5,-51,92,-58,84,0v-4,23,-26,42,-49,42v-23,0,-37,-19,-35,-42","w":214},"`":{"d":"69,-266r45,-29r41,62r-33,21","w":144},"\u00b4":{"d":"160,-266r-70,54r-26,-21r61,-62","w":144},"\u00af":{"d":"70,-271r163,0r-7,39r-162,0","w":217},"\u00a8":{"d":"108,-288v19,0,32,16,30,35v-4,42,-78,50,-71,0v3,-19,21,-35,41,-35xm159,-253v2,-40,78,-49,71,0v-3,42,-78,50,-71,0","w":217},"\u00b8":{"d":"104,34r-63,51r-25,-17r56,-57","w":136},"\u00c6":{"d":"185,-101r-16,-81r-43,81r59,0xm206,0r-10,-47r-98,0r-25,47r-74,0r147,-271r166,0r13,59r-89,0r9,46r89,0r13,59r-89,0r10,47r89,0r12,60r-163,0","w":369},"\u00aa":{"d":"106,-194v31,3,47,-50,8,-51v-32,-3,-45,50,-8,51xm127,-164r2,-12v-34,35,-103,5,-90,-44v3,-44,69,-80,104,-44r2,-11r42,0r-17,111r-43,0","w":147},"\u00d8":{"d":"109,-99r121,-103v-62,-33,-148,28,-121,103xm254,-173r-122,103v61,37,144,-26,122,-103xm10,-14r37,-32v-74,-142,108,-301,242,-206r40,-34r23,29r-37,32v76,138,-108,303,-243,206r-39,33","w":319},"\u00ba":{"d":"118,-279v39,0,69,21,63,59v-6,38,-43,59,-82,59v-39,0,-68,-21,-62,-59v6,-38,42,-59,81,-59xm113,-244v-32,-3,-45,49,-8,49v30,3,46,-49,8,-49","w":147},"\u00e6":{"d":"213,-119r76,0v-2,-42,-67,-35,-76,0xm143,-58v0,-27,-57,-28,-62,-1v0,28,53,27,62,1xm337,-57v-14,39,-55,62,-104,63v-28,0,-60,-8,-68,-36v-21,23,-52,36,-81,36v-35,0,-74,-18,-68,-59v10,-60,81,-75,133,-52v11,-50,-55,-40,-91,-28r8,-49v44,-13,101,-17,119,24v57,-68,193,-24,158,77r-137,0v-12,44,49,54,68,24r63,0","w":338},"\u00f8":{"d":"92,-77r64,-54v-36,-11,-69,14,-64,54xm176,-108r-64,55v38,8,69,-15,64,-55xm9,-6r27,-23v-55,-97,70,-205,172,-147r30,-26r21,23r-28,23v57,96,-68,204,-171,148r-30,25","w":238},"\u00df":{"d":"47,-159v9,-48,5,-92,41,-120v55,-43,167,-29,152,56v-4,26,-18,42,-41,57v65,19,46,114,2,148v-28,21,-60,25,-96,24r9,-56v27,1,52,-15,56,-43v4,-27,-15,-46,-42,-44r8,-52v35,10,61,-56,17,-57v-26,0,-30,21,-33,41r-33,205r-65,0r17,-107r-19,0r8,-52r19,0","w":234},"\u00b9":{"d":"97,-240r-25,0r5,-36r71,0r-26,163r-45,0","w":148},"\u00ac":{"d":"170,-51r9,-58r-130,0r8,-54r185,0r-18,112r-54,0"},"\u00b5":{"d":"50,-185r65,0r-15,99v-4,23,-1,40,26,40v27,0,35,-17,39,-40r16,-99r65,0r-17,112v-15,81,-97,97,-141,61r-17,104r-65,0","w":237},"\u00d0":{"d":"127,-212r-7,45r39,0r-8,56r-40,0r-8,51v56,3,95,-17,106,-76v10,-55,-26,-80,-82,-76xm23,0r18,-111r-31,0r9,-56r30,0r17,-104r91,0v86,0,138,56,126,135v-13,80,-86,136,-168,136r-92,0","w":270},"\u00bd":{"d":"99,-236r-26,0r6,-35r71,0r-26,162r-46,0xm213,-107v7,-37,35,-62,78,-62v37,0,64,22,59,58v-5,36,-42,55,-67,75r57,0r-6,36r-141,0r83,-72v12,-10,25,-25,27,-40v2,-10,-5,-21,-17,-21v-15,0,-22,12,-23,26r-50,0xm265,-271r35,0r-200,271r-36,0","w":370},"\u00b1":{"d":"126,-184r8,-51r54,0r-8,51r65,0r-9,54r-65,0r-8,51r-54,0r8,-51r-65,0r8,-54r66,0xm40,-54r184,0r-8,54r-185,0"},"\u00de":{"d":"23,0r43,-271r70,0r-6,43v77,-5,135,13,122,89v-12,78,-65,98,-151,92r-7,47r-71,0xm121,-171r-11,67v33,0,62,4,68,-33v6,-38,-25,-34,-57,-34","w":237},"\u00bc":{"d":"281,-66r10,-63r-52,63r42,0xm275,-271r35,0r-200,271r-35,0xm99,-236r-26,0r6,-35r71,0r-26,162r-46,0xm324,-66r21,0r-5,32r-21,0r-6,34r-42,0r5,-34r-86,0r5,-27r84,-102r60,0","w":370},"\u00f7":{"d":"50,-120r185,0r-9,54r-184,0xm101,-20v2,-30,56,-36,52,0v-3,30,-58,36,-52,0xm124,-165v2,-30,56,-36,52,0v-3,30,-58,36,-52,0"},"\u00a6":{"d":"87,-297r49,0r0,154r-49,0r0,-154xm87,-77r49,0r0,154r-49,0r0,-154","w":178},"\u00b0":{"d":"162,-224v-5,30,-33,53,-63,53v-30,0,-50,-23,-45,-53v4,-30,32,-55,62,-55v30,0,51,25,46,55xm104,-201v27,2,40,-47,7,-47v-29,-3,-39,46,-7,47","w":144},"\u00fe":{"d":"132,-299r-20,135v52,-61,152,-10,137,72v-13,71,-104,133,-161,74r-18,110r-65,0r62,-391r65,0xm146,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83","w":245},"\u00be":{"d":"299,-66r10,-63r-52,63r42,0xm306,-271r35,0r-200,271r-36,0xm342,-66r21,0r-5,32r-21,0r-6,34r-42,0r5,-34r-86,0r5,-27r84,-102r60,0xm62,-218v7,-32,36,-51,73,-53v53,-3,68,59,26,80v18,4,25,24,22,41v-8,52,-90,72,-127,36v-10,-9,-17,-27,-14,-41r47,0v-2,13,8,22,21,23v29,2,40,-44,7,-44v-3,0,-5,1,-8,1r4,-28v25,7,41,-32,13,-34v-12,0,-20,9,-22,19r-42,0","w":370},"\u00b2":{"d":"177,-224v-4,36,-43,55,-68,75r57,0r-5,36r-142,0v36,-37,91,-60,110,-112v3,-10,-5,-21,-17,-21v-15,1,-23,10,-22,26r-51,0v7,-37,37,-62,79,-62v37,0,64,22,59,58","w":148},"\u00ae":{"d":"143,7v-80,0,-133,-63,-120,-142v13,-80,85,-144,165,-144v79,0,133,64,120,144v-13,79,-86,142,-165,142xm148,-27v61,0,116,-45,126,-108v10,-64,-30,-110,-91,-110v-62,0,-116,46,-126,110v-10,63,29,108,91,108xm196,-126r26,63r-36,0r-23,-63r-23,0r-10,63r-33,0r24,-148v54,5,134,-20,122,45v-4,27,-20,38,-47,40xm144,-148v30,-3,67,10,69,-22v2,-23,-39,-13,-63,-15","w":288},"\u00f0":{"d":"57,-268r44,-37v36,18,43,24,52,30r50,-25r19,27r-40,20v40,38,76,77,65,146v-13,80,-74,113,-131,113v-46,0,-107,-29,-94,-98v12,-67,72,-102,135,-92v-9,-14,-22,-29,-35,-41r-50,25r-20,-25r42,-21v-12,-8,-24,-16,-37,-22xm140,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83","w":238},"\u00d7":{"d":"100,-92r-46,-55r45,-38r45,55r62,-55r32,38r-62,55r46,54r-45,38r-45,-54r-63,54r-32,-38"},"\u00b3":{"d":"28,-166r47,0v-2,13,6,23,20,23v28,0,41,-43,8,-43v-3,0,-6,1,-9,1r5,-28v25,6,39,-35,12,-35v-12,0,-21,9,-22,19r-42,0v9,-34,38,-53,74,-53v53,0,66,60,25,80v18,4,25,24,22,41v-8,52,-90,72,-127,36v-10,-9,-16,-27,-13,-41","w":148},"\u00a9":{"d":"143,7v-80,0,-133,-63,-120,-142v13,-80,85,-144,165,-144v79,0,133,64,120,144v-13,79,-86,142,-165,142xm148,-27v61,0,116,-45,126,-108v10,-64,-30,-110,-91,-110v-62,0,-116,46,-126,110v-10,63,29,108,91,108xm243,-165r-32,0v0,-18,-14,-27,-32,-27v-28,0,-48,26,-52,54v-4,27,8,56,36,56v17,0,35,-11,39,-28r32,0v-9,35,-42,55,-75,55v-48,0,-73,-36,-66,-82v8,-48,42,-82,91,-82v34,0,59,20,59,54","w":288},"\u00c1":{"d":"197,-47r-97,0r-27,47r-74,0r147,-271r77,0r59,271r-75,0xm186,-101r-15,-87r-43,87r58,0xm248,-342r-71,54r-25,-21r60,-62","w":281},"\u00c2":{"d":"197,-47r-97,0r-27,47r-74,0r147,-271r77,0r59,271r-75,0xm186,-101r-15,-87r-43,87r58,0xm112,-315r87,-59r71,59r-33,30r-45,-40r-59,40","w":281},"\u00c4":{"d":"197,-47r-97,0r-27,47r-74,0r147,-271r77,0r59,271r-75,0xm186,-101r-15,-87r-43,87r58,0xm152,-364v19,0,32,16,30,35v-4,42,-78,50,-71,0v3,-19,21,-35,41,-35xm244,-364v19,0,32,16,30,35v-4,42,-78,50,-71,0v3,-19,21,-35,41,-35","w":281},"\u00c0":{"d":"197,-47r-97,0r-27,47r-74,0r147,-271r77,0r59,271r-75,0xm186,-101r-15,-87r-43,87r58,0xm143,-342r44,-29r41,62r-33,21","w":281},"\u00c5":{"d":"197,-47r-97,0r-27,47r-74,0r147,-271r77,0r59,271r-75,0xm186,-101r-15,-87r-43,87r58,0xm198,-364v27,0,54,10,49,41v-5,31,-34,42,-61,42v-27,0,-55,-10,-50,-41v5,-31,35,-42,62,-42xm194,-338v-10,0,-21,3,-23,15v-2,12,8,16,18,16v10,0,22,-4,24,-16v2,-12,-9,-15,-19,-15","w":281},"\u00c3":{"d":"197,-47r-97,0r-27,47r-74,0r147,-271r77,0r59,271r-75,0xm186,-101r-15,-87r-43,87r58,0xm146,-298r-30,0v3,-27,22,-55,49,-56v27,-1,61,28,73,-1r31,0v-6,26,-25,57,-56,57v-23,1,-58,-29,-67,0","w":281},"\u00c7":{"d":"259,-265r-13,85v-38,-58,-133,-22,-142,45v-10,77,85,96,127,45r-13,85v-98,41,-204,-24,-187,-130v15,-92,125,-179,228,-130xm163,34r-62,51r-25,-17r55,-57","w":237},"\u00c9":{"d":"211,-212r-84,0r-7,46r79,0r-9,59r-79,0r-8,47r84,0r-10,60r-154,0r43,-271r154,0xm199,-342r-70,54r-26,-21r60,-62","w":198},"\u00ca":{"d":"211,-212r-84,0r-7,46r79,0r-9,59r-79,0r-8,47r84,0r-10,60r-154,0r43,-271r154,0xm70,-315r88,-59r70,59r-33,30r-45,-40r-59,40","w":198},"\u00cb":{"d":"211,-212r-84,0r-7,46r79,0r-9,59r-79,0r-8,47r84,0r-10,60r-154,0r43,-271r154,0xm69,-329v2,-40,78,-49,71,0v-3,42,-78,50,-71,0xm203,-364v19,0,32,16,30,35v-4,42,-78,50,-71,0v3,-19,21,-35,41,-35","w":198},"\u00c8":{"d":"211,-212r-84,0r-7,46r79,0r-9,59r-79,0r-8,47r84,0r-10,60r-154,0r43,-271r154,0xm108,-342r44,-29r41,62r-32,21","w":198},"\u00cd":{"d":"136,-271r-42,271r-71,0r43,-271r70,0xm163,-342r-70,54r-26,-21r61,-62","w":116},"\u00ce":{"d":"136,-271r-42,271r-71,0r43,-271r70,0xm35,-315r87,-59r71,59r-33,30r-46,-40r-58,40","w":116},"\u00cf":{"d":"136,-271r-42,271r-71,0r43,-271r70,0xm70,-364v19,0,32,16,30,35v-4,42,-78,50,-71,0v3,-19,21,-35,41,-35xm162,-364v19,0,32,16,30,35v-4,42,-78,50,-71,0v3,-19,21,-35,41,-35","w":116},"\u00cc":{"d":"136,-271r-42,271r-71,0r43,-271r70,0xm62,-342r44,-29r41,62r-32,21","w":116},"\u00d1":{"d":"23,0r43,-271r70,0r104,166r26,-166r71,0r-43,271r-70,0r-104,-166r-26,166r-71,0xm164,-298r-30,0v3,-27,22,-55,49,-56v27,-1,61,28,73,-1r31,0v-6,26,-25,57,-56,57v-23,1,-58,-29,-67,0","w":317},"\u00d3":{"d":"204,-280v78,0,141,57,128,139v-14,88,-87,150,-174,150v-87,0,-140,-62,-126,-150v13,-82,94,-139,172,-139xm193,-212v-42,0,-82,35,-88,72v-8,47,22,81,64,81v42,0,81,-34,89,-81v6,-37,-23,-72,-65,-72xm267,-342r-70,54r-26,-21r60,-62","w":319},"\u00d4":{"d":"204,-280v78,0,141,57,128,139v-14,88,-87,150,-174,150v-87,0,-140,-62,-126,-150v13,-82,94,-139,172,-139xm193,-212v-42,0,-82,35,-88,72v-8,47,22,81,64,81v42,0,81,-34,89,-81v6,-37,-23,-72,-65,-72xm131,-315r88,-59r70,59r-33,30r-45,-40r-59,40","w":319},"\u00d6":{"d":"204,-280v78,0,141,57,128,139v-14,88,-87,150,-174,150v-87,0,-140,-62,-126,-150v13,-82,94,-139,172,-139xm193,-212v-42,0,-82,35,-88,72v-8,47,22,81,64,81v42,0,81,-34,89,-81v6,-37,-23,-72,-65,-72xm171,-364v19,0,32,16,30,35v-4,42,-78,50,-71,0v3,-19,21,-35,41,-35xm222,-329v2,-40,78,-49,71,0v-3,42,-78,50,-71,0","w":319},"\u00d2":{"d":"204,-280v78,0,141,57,128,139v-14,88,-87,150,-174,150v-87,0,-140,-62,-126,-150v13,-82,94,-139,172,-139xm193,-212v-42,0,-82,35,-88,72v-8,47,22,81,64,81v42,0,81,-34,89,-81v6,-37,-23,-72,-65,-72xm162,-342r44,-29r41,62r-32,21","w":319},"\u00d5":{"d":"204,-280v78,0,141,57,128,139v-14,88,-87,150,-174,150v-87,0,-140,-62,-126,-150v13,-82,94,-139,172,-139xm193,-212v-42,0,-82,35,-88,72v-8,47,22,81,64,81v42,0,81,-34,89,-81v6,-37,-23,-72,-65,-72xm165,-298r-30,0v3,-27,22,-55,49,-56v27,-1,61,28,73,-1r31,0v-6,26,-25,57,-56,57v-23,1,-58,-29,-67,0","w":319},"\u00da":{"d":"231,-271r70,0r-24,152v-5,35,-12,71,-43,96v-49,40,-137,44,-180,0v-24,-25,-19,-61,-14,-96r24,-152r71,0r-22,142v-6,35,-9,74,36,74v45,0,53,-39,59,-74xm247,-342r-70,54r-26,-21r60,-62","w":280},"\u00db":{"d":"231,-271r70,0r-24,152v-5,35,-12,71,-43,96v-49,40,-137,44,-180,0v-24,-25,-19,-61,-14,-96r24,-152r71,0r-22,142v-6,35,-9,74,36,74v45,0,53,-39,59,-74xm111,-315r88,-59r70,59r-33,30r-45,-40r-59,40","w":280},"\u00dc":{"d":"231,-271r70,0r-24,152v-5,35,-12,71,-43,96v-49,40,-137,44,-180,0v-24,-25,-19,-61,-14,-96r24,-152r71,0r-22,142v-6,35,-9,74,36,74v45,0,53,-39,59,-74xm111,-329v2,-40,77,-49,70,0v-3,42,-77,50,-70,0xm244,-364v19,0,32,16,30,35v-4,42,-78,50,-71,0v3,-19,21,-35,41,-35","w":280},"\u00d9":{"d":"231,-271r70,0r-24,152v-5,35,-12,71,-43,96v-49,40,-137,44,-180,0v-24,-25,-19,-61,-14,-96r24,-152r71,0r-22,142v-6,35,-9,74,36,74v45,0,53,-39,59,-74xm142,-342r44,-29r41,62r-32,21","w":280},"\u00dd":{"d":"114,-130r-78,-141r85,0r39,73r62,-73r85,0r-123,141r-20,130r-71,0xm243,-342r-71,54r-25,-21r60,-62","w":257,"k":{"f":29,"\u00df":29,"o":29,"\u00f8":29,"\u00f3":29,"\u00f4":29,"\u00f6":29,"\u00f2":29,"\u00f5":29,"z":22,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"c":40,"\u00e7":40,"s":27,";":27,"i":27,"\u00ed":27,"\u00ee":27,"\u00ef":27,"\u00ec":27,"p":27}},"\u00e1":{"d":"139,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83xm253,-185r-29,185r-66,0r3,-21v-14,18,-39,27,-61,27v-55,0,-83,-46,-77,-99v9,-71,105,-133,161,-74r3,-18r66,0xm217,-266r-70,54r-25,-21r60,-62","w":245},"\u00e2":{"d":"139,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83xm253,-185r-29,185r-66,0r3,-21v-14,18,-39,27,-61,27v-55,0,-83,-46,-77,-99v9,-71,105,-133,161,-74r3,-18r66,0xm81,-239r88,-59r70,59r-32,30r-45,-40r-59,40","w":245},"\u00e4":{"d":"139,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83xm253,-185r-29,185r-66,0r3,-21v-14,18,-39,27,-61,27v-55,0,-83,-46,-77,-99v9,-71,105,-133,161,-74r3,-18r66,0xm122,-288v19,0,32,16,30,35v-4,42,-78,50,-71,0v3,-19,21,-35,41,-35xm173,-253v2,-40,78,-49,71,0v-3,42,-78,50,-71,0","w":245},"\u00e0":{"d":"139,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83xm253,-185r-29,185r-66,0r3,-21v-14,18,-39,27,-61,27v-55,0,-83,-46,-77,-99v9,-71,105,-133,161,-74r3,-18r66,0xm120,-266r44,-29r41,62r-33,21","w":245},"\u00e5":{"d":"139,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83xm253,-185r-29,185r-66,0r3,-21v-14,18,-39,27,-61,27v-55,0,-83,-46,-77,-99v9,-71,105,-133,161,-74r3,-18r66,0xm169,-293v27,0,54,10,49,41v-5,31,-34,41,-61,41v-27,0,-54,-10,-49,-41v5,-31,34,-41,61,-41xm166,-267v-10,0,-22,3,-24,15v-2,12,9,15,19,15v10,0,21,-3,23,-15v2,-12,-8,-15,-18,-15","w":245},"\u00e3":{"d":"139,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83xm253,-185r-29,185r-66,0r3,-21v-14,18,-39,27,-61,27v-55,0,-83,-46,-77,-99v9,-71,105,-133,161,-74r3,-18r66,0xm87,-222v1,-29,22,-54,48,-56v26,-1,62,28,73,-1r31,0v-6,26,-25,57,-56,57v-23,1,-58,-29,-67,0r-29,0","w":245},"\u00e7":{"d":"183,-180r-8,55v-28,-27,-78,-7,-84,32v-7,43,45,59,73,33r-8,56v-68,31,-146,-12,-133,-86v12,-71,90,-124,160,-90xm123,34r-63,51r-25,-17r56,-57","w":173},"\u00e9":{"d":"93,-119r76,0v-2,-42,-67,-35,-76,0xm218,-57v-14,39,-55,63,-104,63v-61,0,-101,-34,-91,-98v10,-62,57,-99,117,-99v67,-1,97,45,84,110r-138,0v-12,44,49,54,69,24r63,0xm206,-266r-70,54r-25,-21r60,-62","w":219},"\u00ea":{"d":"93,-119r76,0v-2,-42,-67,-35,-76,0xm218,-57v-14,39,-55,63,-104,63v-61,0,-101,-34,-91,-98v10,-62,57,-99,117,-99v67,-1,97,45,84,110r-138,0v-12,44,49,54,69,24r63,0xm68,-239r88,-59r70,59r-32,30r-45,-40r-59,40","w":219},"\u00eb":{"d":"93,-119r76,0v-2,-42,-67,-35,-76,0xm218,-57v-14,39,-55,63,-104,63v-61,0,-101,-34,-91,-98v10,-62,57,-99,117,-99v67,-1,97,45,84,110r-138,0v-12,44,49,54,69,24r63,0xm109,-288v19,0,32,16,30,35v-4,42,-78,50,-71,0v3,-19,21,-35,41,-35xm160,-253v2,-40,78,-49,71,0v-3,42,-78,50,-71,0","w":219},"\u00e8":{"d":"93,-119r76,0v-2,-42,-67,-35,-76,0xm218,-57v-14,39,-55,63,-104,63v-61,0,-101,-34,-91,-98v10,-62,57,-99,117,-99v67,-1,97,45,84,110r-138,0v-12,44,49,54,69,24r63,0xm98,-266r44,-29r41,62r-33,21","w":219},"\u00ed":{"d":"116,-185r-29,185r-65,0r29,-185r65,0xm147,-266r-70,54r-26,-21r61,-62","w":108},"\u00ee":{"d":"116,-185r-29,185r-65,0r29,-185r65,0xm13,-239r88,-59r70,59r-32,30r-46,-40r-58,40","w":108},"\u00ef":{"d":"116,-185r-29,185r-65,0r29,-185r65,0xm54,-288v19,0,32,16,30,35v-4,42,-78,50,-71,0v3,-19,21,-35,41,-35xm146,-288v19,0,32,16,30,35v-4,42,-78,50,-71,0v3,-19,21,-35,41,-35","w":108},"\u00ec":{"d":"116,-185r-29,185r-65,0r29,-185r65,0xm46,-266r44,-29r41,62r-32,21","w":108},"\u00f1":{"d":"116,-185r-3,24v19,-22,38,-30,64,-30v99,2,43,122,39,191r-65,0r14,-90v3,-18,10,-49,-22,-49v-59,0,-40,90,-56,139r-65,0r29,-185r65,0xm83,-222v1,-29,22,-54,48,-56v26,-1,62,28,73,-1r31,0v-6,26,-25,57,-56,57v-23,1,-58,-29,-67,0r-29,0","w":237},"\u00f3":{"d":"149,-191v59,0,106,36,96,99v-10,63,-68,98,-127,98v-59,0,-105,-35,-95,-98v10,-63,67,-99,126,-99xm140,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83xm216,-266r-71,54r-25,-21r60,-62","w":238},"\u00f4":{"d":"149,-191v59,0,106,36,96,99v-10,63,-68,98,-127,98v-59,0,-105,-35,-95,-98v10,-63,67,-99,126,-99xm140,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83xm78,-239r88,-59r70,59r-33,30r-45,-40r-58,40","w":238},"\u00f6":{"d":"149,-191v59,0,106,36,96,99v-10,63,-68,98,-127,98v-59,0,-105,-35,-95,-98v10,-63,67,-99,126,-99xm140,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83xm77,-253v4,-40,78,-49,71,0v-3,20,-21,36,-40,36v-20,0,-33,-16,-31,-36xm170,-253v2,-40,77,-49,70,0v-2,43,-77,49,-70,0","w":238},"\u00f2":{"d":"149,-191v59,0,106,36,96,99v-10,63,-68,98,-127,98v-59,0,-105,-35,-95,-98v10,-63,67,-99,126,-99xm140,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83xm107,-266r45,-29r41,62r-33,21","w":238},"\u00f5":{"d":"149,-191v59,0,106,36,96,99v-10,63,-68,98,-127,98v-59,0,-105,-35,-95,-98v10,-63,67,-99,126,-99xm140,-134v-50,-5,-72,82,-13,83v51,5,73,-82,13,-83xm83,-222v1,-29,22,-55,48,-56v27,-2,62,28,74,-1r30,0v-6,26,-24,57,-55,57v-23,1,-58,-29,-67,0r-30,0","w":238},"\u00fa":{"d":"50,-185r65,0r-15,99v-4,23,-1,40,26,40v27,0,35,-17,39,-40r16,-99r65,0r-17,112v-9,61,-56,79,-111,79v-55,0,-95,-18,-86,-79xm217,-266r-70,54r-26,-21r61,-62","w":237},"\u00fb":{"d":"50,-185r65,0r-15,99v-4,23,-1,40,26,40v27,0,35,-17,39,-40r16,-99r65,0r-17,112v-9,61,-56,79,-111,79v-55,0,-95,-18,-86,-79xm77,-239r88,-59r70,59r-32,30r-45,-40r-59,40","w":237},"\u00fc":{"d":"50,-185r65,0r-15,99v-4,23,-1,40,26,40v27,0,35,-17,39,-40r16,-99r65,0r-17,112v-9,61,-56,79,-111,79v-55,0,-95,-18,-86,-79xm118,-288v19,0,32,16,30,35v-4,42,-78,50,-71,0v3,-19,21,-35,41,-35xm169,-253v2,-40,78,-49,71,0v-3,42,-78,50,-71,0","w":237},"\u00f9":{"d":"50,-185r65,0r-15,99v-4,23,-1,40,26,40v27,0,35,-17,39,-40r16,-99r65,0r-17,112v-9,61,-56,79,-111,79v-55,0,-95,-18,-86,-79xm105,-266r44,-29r41,62r-32,21","w":237},"\u00fd":{"d":"88,-25r-64,-160r75,0r35,95r63,-95r74,0r-191,277r-74,0xm220,-266r-71,54r-25,-21r60,-62","w":235,"k":{"T":14,"i":29,"\u00ed":29,"\u00ee":29,"\u00ef":29,"\u00ec":29}},"\u00ff":{"d":"88,-25r-64,-160r75,0r35,95r63,-95r74,0r-191,277r-74,0xm81,-253v4,-40,78,-49,71,0v-3,20,-21,36,-40,36v-20,0,-33,-16,-31,-36xm174,-253v2,-40,77,-49,70,0v-2,43,-77,49,-70,0","w":235,"k":{"T":14,"i":29,"\u00ed":29,"\u00ee":29,"\u00ef":29,"\u00ec":29}},"\u00a0":{"w":123},"\u00ad":{"d":"42,-143r103,0r-9,54r-103,0","w":141}}});
\ No newline at end of file diff --git a/static/search/s.html b/static/search/s.html new file mode 100755 index 0000000..ced8bf3 --- /dev/null +++ b/static/search/s.html @@ -0,0 +1,258 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> +<title>Advanced Image Search - Digital Inspiration</title> +<!--Written by Amit Agarwal, http://www.labnol.org, September 16, 2008 --> +<style type="text/css"> +<!-- +a { + font-size: 12px; + color: #f0e; +} +a:visited { + color: #f0e; +} +a:hover { + color: #f0e; +} +a:active { + color: #f0e; +} +--> +</style></head> +<body> + + <div align="center"> + <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> + <script src="dumpsearch.js" type="text/javascript"></script> + <script type="text/javascript" src="all.js"></script> + <script type="text/javascript" src="cufon-yui.js"></script> + <script type="text/javascript" src="futura.js"></script> + <style type="text/css"> + body { + + +} +#rapper{margin-left:auto; +margin-right:auto; +text-align:left; +width:700px; +} + #container { + text-align: left; + font-family: sans-serif; + color: #4E4848; + margin-left: auto; + margin-right: auto; + width: 1200px; + } + #description {display:none;width:790px;} + #description div, .post, .result {margin:0 0 40px 270px;width:520px;} + #description p > p,#description p {margin:0;} + #description img {float:left;margin:0 12px 32px 0;} +table.search{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px;color:#333}.gsc-trailing-more-results,.gsc-resultsHeader,.gsc-search-box{display:none}.gsc-results{padding-left:20px}#searchControl .gsc-control{width:800px;margin:10px;padding:10px}select, label{font:bold 11px Arial,Helvetica,sans-serif;color:#003;text-transform:uppercase;margin-right:5px}input#q{font:bold 13px Arial,Helvetica,sans-serif;color:#F00;height:2em;padding:3px;border-top:2px solid #999;border-right:2px solid #999;border-bottom:1px solid #999;border-left:1px solid #999;} +#logo{padding-left:20;} + </style> + + + </div> +<form onSubmit="searchImages(); return false;" > <div id="rapper"> + <div align="center"> + <table class="search" width="600" border="0" cellpadding="5" cellspacing="0"> + <tr> + <td colspan="2"><p><img src="dumpsearch.gif" width="425" height="192"> + </p> + + <input name="q" type="text" id="q" onChange="searchImages();" size="50%"> + <label> + <input type="submit" name="submit" id="submit" value="Search Images"> + </label> + </p></td> + </tr> <tr> + <td colspan="2"><div id="searchControl">Loading...</div></td> + </tr> + </table> <table class="search" width="600" border="0" cellpadding="5" cellspacing="0"> + </div> + <p align="left"><a href="#" id="about">options</a></table> + </div> + </div> + <div id="description"> + <div align="left"><a href="#" class="closeinfo"></a> + </p> + </div> + <div> + + <table class="search" width="600" border="0" cellpadding="5" cellspacing="0"> + <tr> + <td colspan="2"> + <label>where: + <select name="site" id="site" onChange="searchImages();"> <option value="flickr.com" selected>flickr</option> <option value="zooomr.com">zooomr</option> <option value="photobucket.com">photobucket</option> <option value="myspace.com">myspace</option> <option value="wordpress.com">wordpress</option> <option value="blogger.com">blogger</option> <option value="typepad.com">typepad</option> + <option value="webshots.com">webshots</option> + <option value="gov">US Government</option> + <option value="deviantart.com">deviant art</option> + <option value="corbis.com">corbis</option> + <option value="0" selected>default</option> </select> </label><label> + <input name="showFaces" type="checkbox" onClick="searchImages();"> + Only Faces</label> · <label>Safe Search</label> + <input type="radio" name="safeSearch" id="safeSearch2" value="off" onClick="searchImages();"checked> + Off + <input name="safeSearch" type="radio" id="safeSearch2" value="moderate" onClick="searchImages();" > + Moderate + <input type="radio" name="safeSearch" id="safeSearch2" value="strict" onClick="searchImages();"> + On </td> + </tr> + + <tr> + <td colspan="2"> + Refine your image search results..</td> + </tr> + <tr> + <td colspan="2"><label>File Type</label> + <input type="radio" name="type" value="jpg" onClick="searchImages();"> + JPG + <input name="type" type="radio" value="png" onClick="searchImages();"> + PNG + <input name="type" type="radio" value="bmp" onClick="searchImages();"> + BMP + <input type="radio" name="type" value="gif" onClick="searchImages();"> + GIF + <input type="radio" name="type" value="0" checked onClick="searchImages();"> + Any</td> + </tr> + <tr> + <td colspan="2"><label>Image Size</label> + <input type="radio" name="size" value="small" onClick="searchImages();"> + Small + <input name="size" type="radio" value="medium" onClick="searchImages();"> + Medium + <input type="radio" name="size" value="large" onClick="searchImages();"> + Large + <input type="radio" name="size" value="xlarge" onClick="searchImages();"> + Extra Large + <input type="radio" name="size" value="0" checked onClick="searchImages();"> + All Sizes</td> + </tr> + <tr> + <td colspan="2"><label>Image Color</label> + <input type="radio" name="color" value="bw" onClick="searchImages();"> + Black & White + <input name="color" type="radio" value="gray" onClick="searchImages();"> + Gray + <input type="radio" name="color" value="color" onClick="searchImages();"> + Colored + <input type="radio" name="color" value="0" checked onClick="searchImages();"> + No Preference</td> + </tr> + </table> + </div> + </div> + </div> +</form> +<div align="center"> + </div> + <script type="text/javascript"> + google.load('search', '1'); + google.setOnLoadCallback(searchImages, true); + + function searchImages() { + var control = new google.search.SearchControl(); + control.setResultSetSize(google.search.Search.LARGE_RESULTSET); + control.setNoResultsString("Sorry but no images match your search criteria. Please modify your search query and try again."); + control.setLinkTarget(google.search.Search.LINK_TARGET_BLANK); + + var options = new google.search.SearcherOptions(); + options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN); + + var searcher = new google.search.ImageSearch(); + + for (var i = 0; i < document.forms[0].safeSearch.length; i++) { + if (document.forms[0].safeSearch[i].checked) { + if (document.forms[0].safeSearch[i].value == "off") + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_OFF); + else if (document.forms[0].safeSearch[i].value == "moderate") + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_MODERATE); + else if (document.forms[0].safeSearch[i].value == "strict") + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_STRICT); + else + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, null); + break; + } + } + + for (var i = 0; i < document.forms[0].size.length; i++) { + if (document.forms[0].size[i].checked) { + if (document.forms[0].size[i].value == "small") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_SMALL); + else if (document.forms[0].size[i].value == "medium") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_MEDIUM); + else if (document.forms[0].size[i].value == "large") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_LARGE); + else if (document.forms[0].size[i].value == "xlarge") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_EXTRA_LARGE); + else + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, null); + break; + } + } + + for (var i = 0; i < document.forms[0].type.length; i++) { + if (document.forms[0].type[i].checked) { + if (document.forms[0].type[i].value == "bmp") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_BMP); + else if (document.forms[0].type[i].value == "jpg") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_JPG); + else if (document.forms[0].type[i].value == "png") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_PNG); + else if (document.forms[0].type[i].value == "gif") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_GIF); + else + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, null); + break; + } + } + + for (var i = 0; i < document.forms[0].color.length; i++) { + if (document.forms[0].color[i].checked) { + if (document.forms[0].color[i].value == "bw") + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, google.search.ImageSearch.COLORIZATION_BLACK_AND_WHITE ); + else if (document.forms[0].color[i].value == "gray") + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, google.search.ImageSearch.COLORIZATION_GRAYSCALE); + else if (document.forms[0].color[i].value == "color") + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, google.search.ImageSearch.COLORIZATION_COLOR); + else + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, null); + break; + } + } + + var list = document.forms[0].site; + if (list.options[list.selectedIndex].value == 0) + searcher.setSiteRestriction(null); + else + searcher.setSiteRestriction(list.options[list.selectedIndex].value); + + for (var i = 0; i < document.forms[0].site.length; i++) { + if (document.forms[0].site[i].checked) { + if (document.forms[0].site[i].value == 0) + searcher.setSiteRestriction(null); + else + searcher.setSiteRestriction(document.forms[0].site[i].value); + break; + } + } + + if (document.forms[0].showFaces.checked) + searcher.setRestriction(GimageSearch.RESTRICT_IMAGETYPE, GimageSearch.IMAGETYPE_FACES); + else + searcher.setRestriction(GimageSearch.RESTRICT_IMAGETYPE); + + control.addSearcher(searcher, options); + control.draw(document.getElementById("searchControl")); + + control.execute(document.getElementById('q').value); + return false; + } + </script> +</div> +</body> +</html>
\ No newline at end of file diff --git a/static/search/search.html b/static/search/search.html new file mode 100755 index 0000000..5c5b96b --- /dev/null +++ b/static/search/search.html @@ -0,0 +1,314 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> +<title>dump.fm - image search</title> + +<style type="text/css"> +<!-- +a { + font-size: 12px; + color: #f0e; +} +a:visited { + color: #f0e; +} +a:hover { + color: #f0e; +} +a:active { + color: #f0e; +} +--> +</style></head> + +<div align="center"> + <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> + <script src="dumpsearch.js" type="text/javascript"></script> + <script type="text/javascript" src="all.js"></script> + <script type="text/javascript" src="cufon-yui.js"></script> + <script src="/static/js-global/FancyZoom.js" type="text/javascript"></script> +<script src="/static/js-global/FancyZoomHTML.js" type="text/javascript"></script> + <script type="text/javascript" src="futura.js"></script> + <style type="text/css"> + + + + + + + + + + + body { + font-size:13; + font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; + + +} +#rapper{ +} + #container { + text-align: left; + font-family: sans-serif; + color: #4E4848; + margin-left: auto; + margin-right: auto; + width: 1200px; + } + #description {display:none;width:790px;} + #description div, .post, .result {margin: -px 270px;width:470px;} + #description p > p,#description p {margin:0;line-height:.1;width:600;} + #description img {float:left;margin:0 12px 32px 0;} +table.search{font-family:Verdana,Arial,Helvetica,sans-serif;text-align:left;font-size:11px;color:#333}.gsc-trailing-more-results,.gsc-resultsHeader,.gsc-search-box{display:none}.gsc-results{padding-left:20px}#searchControl .gsc-control{width:550px;padding:10px;padding-left:20;}select, label{font:bold 11px Arial,Helvetica,sans-serif;color:#003;text-transform:uppercase;margin-right:5px;line-height:.1;}input#q{font:bold 11px Arial,Helvetica,sans-serif;color:#F00;height:2em;padding:3px;border-top:2px solid #999;border-right:2px solid #999;border-bottom:1px solid #999;border-left:1px solid #999;} +#logo{padding-left:20;} +.gsc-control img{ + max-width:500px; + width: expression(this.width > 500 ? 500: true); + max-height:400px; + height: expression(this.width > 500 ? 500: true); + + + </style> + <body onload="setupZoom()"> + +</div> +<form onSubmit="searchImages(); return false;" > <div id="rapper"> + <div align="center"> + <div align="center"> + <table class="search" width="425" border="0" cellpadding="5" cellspacing="0"> + <tr> + <td colspan="2"><p align="center"><img src="dumpsearch.gif" width="500" height="239"> </p> + + <div align="center"> + <input name="q" type="text" id="q" onChange="searchImages();" size="55%"> + <input type="submit" name="submit" id="submit" value="Search Images"> + </div> + <label> + </label> + </p> + <div align="right"></div></td> + </tr> + <table class="search" width="425" border="0" cellpadding="5" cellspacing="0"> + + +<a href="#" id="about">options</a></div> + </table> + + + <div id="description"> + <div align="right"><a href="#" class="closeinfo"></a> + </p> + </div> + <div> + + + <table class="search" width="425" border="0" cellpadding="5" cellspacing="0"> + <tr> + <td colspan="2"> + <p> + <label>where: + <select name="site" id="site" onChange="searchImages();"> + <option value="flickr.com" selected>flickr</option> + <option value="zooomr.com">zooomr</option> + <option value="photobucket.com">photobucket</option> + <option value="myspace.com">myspace</option> + <option value="wordpress.com">wordpress</option> + <option value="blogger.com">blogger</option> + <option value="typepad.com">typepad</option> + <option value="picsearch.com">picsearch</option> + <option value="webshots.com">webshots</option> + <option value="http://i.walmartimages.com/">walmart</option> + <option value="http://www.ibiblio.org">ibiblio</option> + <option value="gov">US Government</option> + <option value="deviantart.com">deviant art</option> + <option value="corbis.com">corbis</option> + <option value="msn.com">msn</option> + + <option value="made-in-china.com">made in china</option> + <option value="0" selected>EVERYWHERE</option> + </select> + </label> + <label> + <input name="showFaces" type="checkbox" onClick="searchImages();"> + Only Faces</label> + ★<label> hot shit</label>★ + <input type="radio" name="safeSearch" id="safeSearch2" value="off" onClick="searchImages();"checked> + Always ON + </p></td> + </tr> + + <tr> + + </tr> + <tr> + <td colspan="2"><p> + <label>File Type</label> + <input type="radio" name="type" value="jpg" onClick="searchImages();"> + JPG + <input name="type" type="radio" value="png" onClick="searchImages();"> + PNG + <input name="type" type="radio" value="bmp" onClick="searchImages();"> + BMP + <input type="radio" name="type" value="gif" onClick="searchImages();"> + GIF + <input type="radio" name="type" value="0" checked onClick="searchImages();"> + Any</p></td> + </tr> + <tr> + <td colspan="2"><p> + <label>Image Size</label> + <input type="radio" name="size" value="small" onClick="searchImages();"> + Small + <input name="size" type="radio" value="medium" onClick="searchImages();"> + Medium + <input type="radio" name="size" value="large" onClick="searchImages();"> + Large + <input type="radio" name="size" value="xlarge" onClick="searchImages();"> + Extra Large + <input type="radio" name="size" value="0" checked onClick="searchImages();"> + All Sizes</p></td> + </tr> + <tr> + <td colspan="2"><p> + <label>Image Color</label> + <input type="radio" name="color" value="bw" onClick="searchImages();"> + Black & White + <input name="color" type="radio" value="gray" onClick="searchImages();"> + Gray + <input type="radio" name="color" value="color" onClick="searchImages();"> + Color + <input type="radio" name="color" value="0" checked onClick="searchImages();"> + Whateva</p></td> + </tr> + </table> + </div> + </div> + + <tr> + <td colspan="2"><div id="searchControl">Loading...</div></td> + </tr> + </table> + </div> +</form> +<div align="center"> +</div> + <script type="text/javascript"> + google.load('search', '1'); + google.setOnLoadCallback(searchImages, true); + + function searchImages() { + var control = new google.search.SearchControl(); + control.setResultSetSize(google.search.Search.LARGE_RESULTSET); + control.setNoResultsString("Sorry but no images match your search criteria. Please modify your search query and try again."); + control.setLinkTarget(google.search.Search.LINK_TARGET_BLANK); + + var options = new google.search.SearcherOptions(); + options.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN); + + var searcher = new google.search.ImageSearch(); + + for (var i = 0; i < document.forms[0].safeSearch.length; i++) { + if (document.forms[0].safeSearch[i].checked) { + if (document.forms[0].safeSearch[i].value == "off") + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_OFF); + else if (document.forms[0].safeSearch[i].value == "moderate") + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_MODERATE); + else if (document.forms[0].safeSearch[i].value == "strict") + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, google.search.Search.SAFESEARCH_STRICT); + else + searcher.setRestriction(GSearch.RESTRICT_SAFESEARCH, null); + break; + } + } + + for (var i = 0; i < document.forms[0].size.length; i++) { + if (document.forms[0].size[i].checked) { + if (document.forms[0].size[i].value == "small") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_SMALL); + else if (document.forms[0].size[i].value == "medium") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_MEDIUM); + else if (document.forms[0].size[i].value == "large") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_LARGE); + else if (document.forms[0].size[i].value == "xlarge") + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, google.search.ImageSearch.IMAGESIZE_EXTRA_LARGE); + else + searcher.setRestriction(GimageSearch.RESTRICT_IMAGESIZE, null); + break; + } + } + + for (var i = 0; i < document.forms[0].type.length; i++) { + if (document.forms[0].type[i].checked) { + if (document.forms[0].type[i].value == "bmp") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_BMP); + else if (document.forms[0].type[i].value == "jpg") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_JPG); + else if (document.forms[0].type[i].value == "png") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_PNG); + else if (document.forms[0].type[i].value == "gif") + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, google.search.ImageSearch.FILETYPE_GIF); + else + searcher.setRestriction(GimageSearch.RESTRICT_FILETYPE, null); + break; + } + } + + for (var i = 0; i < document.forms[0].color.length; i++) { + if (document.forms[0].color[i].checked) { + if (document.forms[0].color[i].value == "bw") + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, google.search.ImageSearch.COLORIZATION_BLACK_AND_WHITE ); + else if (document.forms[0].color[i].value == "gray") + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, google.search.ImageSearch.COLORIZATION_GRAYSCALE); + else if (document.forms[0].color[i].value == "color") + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, google.search.ImageSearch.COLORIZATION_COLOR); + else + searcher.setRestriction(GimageSearch.RESTRICT_COLORIZATION, null); + break; + } + } + + var list = document.forms[0].site; + if (list.options[list.selectedIndex].value == 0) + searcher.setSiteRestriction(null); + else + searcher.setSiteRestriction(list.options[list.selectedIndex].value); + + for (var i = 0; i < document.forms[0].site.length; i++) { + if (document.forms[0].site[i].checked) { + if (document.forms[0].site[i].value == 0) + searcher.setSiteRestriction(null); + else + searcher.setSiteRestriction(document.forms[0].site[i].value); + break; + } + } + + if (document.forms[0].showFaces.checked) + searcher.setRestriction(GimageSearch.RESTRICT_IMAGETYPE, GimageSearch.IMAGETYPE_FACES); + else + searcher.setRestriction(GimageSearch.RESTRICT_IMAGETYPE); + + control.addSearcher(searcher, options); + + function keepResult(res) { + $.ajax({ + type: 'GET', + timeout: 5000, + url: '/msg', + data: { 'room': 'RoomA', 'content': res.unescapedUrl }, + cache: false, + dataType: 'json' + }); + }; + + control.setOnKeepCallback(this, keepResult, 'DUMP THIS'); + control.draw(document.getElementById("searchControl")); + + control.execute(document.getElementById('q').value); + return false; + } + </script> +</div> </div> +</body> +</html>
\ No newline at end of file diff --git a/static/shaqg.gif b/static/shaqg.gif Binary files differindex 6106d3d..6106d3d 100644..100755 --- a/static/shaqg.gif +++ b/static/shaqg.gif diff --git a/static/surf.php b/static/surf.php new file mode 100755 index 0000000..d5ad9ce --- /dev/null +++ b/static/surf.php @@ -0,0 +1,238 @@ +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> +<title>dump.fm</title> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<link rel="stylesheet" type="text/css" href="css/jquery.gritter.css" /> +<script type="text/javascript" src="http://www.google.com/jsapi"></script> +<script type="text/javascript">google.load('jquery', '1.3.2');</script> +<script type="text/javascript" src="js/jquery.gritter.min.js"></script> +<script type="text/javascript"> + + $(document).ready(function(){ + + // global setting override + /* + $.extend($.gritter.options, { + fade_in_speed: 100, // how fast notifications fade in (string or int) + fade_out_speed: 100, // how fast the notices fade out + time: 3000 // hang on the screen for... + }); + */ + + $('#add-sticky').click(function(){ + + var unique_id = $.gritter.add({ + // (string | mandatory) the heading of the notification + title: 'This is a sticky notice!', + // (string | mandatory) the text inside the notification + text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus eget tincidunt velit. Cum sociis natoque penatibus et <a href="#" style="color:#ccc">magnis dis parturient</a> montes, nascetur ridiculus mus.', + // (string | optional) the image to display on the left + image: 'http://s3.amazonaws.com/twitter_production/profile_images/132499022/myface_bigger.jpg', + // (bool | optional) if you want it to fade out on its own or just sit there + sticky: true, + // (int | optional) the time you want it to be alive for before fading out + time: '', + // (string | optional) the class name you want to apply to that specific message + class_name: 'my-sticky-class' + }); + + // You can have it return a unique id, this can be used to manually remove it later using + /* + setTimeout(function(){ + + $.gritter.remove(unique_id, { + fade: true, + speed: 'slow' + }); + + }, 6000) + */ + + return false; + + }); + + $('#add-regular').click(function(){ + + $.gritter.add({ + // (string | mandatory) the heading of the notification + title: 'This is a regular notice!', + // (string | mandatory) the text inside the notification + text: 'This will fade out after a certain amount of time. Vivamus eget tincidunt velit. Cum sociis natoque penatibus et <a href="#" style="color:#ccc">magnis dis parturient</a> montes, nascetur ridiculus mus.', + // (string | optional) the image to display on the left + image: 'http://a0.twimg.com/profile_images/59268975/jquery_avatar_bigger.png', + // (bool | optional) if you want it to fade out on its own or just sit there + sticky: false, + // (int | optional) the time you want it to be alive for before fading out + time: '' + }); + + return false; + + }); + + $('#add-without-image').click(function(){ + + $.gritter.add({ + // (string | mandatory) the heading of the notification + title: 'This is a notice without an image!', + // (string | mandatory) the text inside the notification + text: 'This will fade out after a certain amount of time. Vivamus eget tincidunt velit. Cum sociis natoque penatibus et <a href="#" style="color:#ccc">magnis dis parturient</a> montes, nascetur ridiculus mus.' + }); + + return false; + }); + + $('#add-with-callbacks').click(function(){ + + $.gritter.add({ + // (string | mandatory) the heading of the notification + title: 'This is a notice with callbacks!', + // (string | mandatory) the text inside the notification + text: 'The callback is...', + // (function | optional) function called before it opens + before_open: function(){ + alert('I am called before it opens'); + }, + // (function | optional) function called after it opens + after_open: function(e){ + alert("I am called after it opens: \nI am passed the jQuery object for the created Gritter element...\n" + e); + }, + // (function | optional) function called before it closes + before_close: function(e){ + alert("I am called before it closes: I am passed the jQuery object for the Gritter element... \n" + e); + }, + // (function | optional) function called after it closes + after_close: function(){ + alert('I am called after it closes'); + } + }); + + return false; + }); + + $('#add-sticky-with-callbacks').click(function(){ + + $.gritter.add({ + // (string | mandatory) the heading of the notification + title: 'This is a sticky notice with callbacks!', + // (string | mandatory) the text inside the notification + text: 'Sticky sticky notice.. sticky sticky notice...', + // Stickeh! + sticky: true, + // (function | optional) function called before it opens + before_open: function(){ + alert('I am a sticky called before it opens'); + }, + // (function | optional) function called after it opens + after_open: function(e){ + alert("I am a sticky called after it opens: \nI am passed the jQuery object for the created Gritter element...\n" + e); + }, + // (function | optional) function called before it closes + before_close: function(e){ + alert("I am a sticky called before it closes: I am passed the jQuery object for the Gritter element... \n" + e); + }, + // (function | optional) function called after it closes + after_close: function(){ + alert('I am a sticky called after it closes'); + } + }); + + return false; + + }); + + $("#remove-all").click(function(){ + + $.gritter.removeAll(); + return false; + + }); + + $("#remove-all-with-callbacks").click(function(){ + + $.gritter.removeAll({ + before_close: function(e){ + alert("I am called before all notifications are closed. I am passed the jQuery object containing all of Gritter notifications.\n" + e); + }, + after_close: function(){ + alert('I am called after everything has been closed.'); + } + }); + return false; + + }); + + + }); +</script> + +<style type="text/css"> +<!-- +body { + margin:0; + +} + +#everything{ + + background-repeat: repeat-x; + z-index:1; + +width:100%; +height:100%; +position:fixed; +left:0px;} + + +#clock { + +position:fixed; +bottom: 10px; +right: 300px; + +} + +#firah { + +position:fixed; +bottom: 30px; +right: 535px; + +} + +#lamp { + +position:fixed; +bottom: 35px; +right: 800px; + +} + +#dash { +background-image: url(bar.png); +background-repeat:no-repeat; + +height:125px; +position:fixed; +bottom:20px; +z-index:3; +width:1000px; +right: 40px; + +} +--> +</style> + + +</head> +<body> +<div id="everything"> +<iframe src="chatbar.html" style="width:100%;height:100%;padding:0px;background-color: #fff; position:absolute; top:0px; left:0px; border:none; allowtransparency="true" scrolling="no" ></iframe> + + +</div> +</div></div> +</body> +</html> diff --git a/template/banner.st b/template/banner.st index 19b90dc..3998ff0 100755 --- a/template/banner.st +++ b/template/banner.st @@ -8,7 +8,7 @@ <div id="bar7"> <div style="float: left;"> <div align="center">$if(user_nick)$ - <a href="/u/$user_nick$">Profile</a> | + <a href="/u/$user_nick$">★ Profile ★</a> | $else$ <a href="/register">Register</a> | $endif$ <a href="/chat">Room A</a> | diff --git a/template/browser.st b/template/browser.st index 1531ff5..a92eef3 100755 --- a/template/browser.st +++ b/template/browser.st @@ -1,9 +1,72 @@ <html> - <body> - $if(user_nick)$ - Hello, $user_nick$ - $else$ - Hello, unnamed + <head> + <title>dump.fm | Browser Tool Beta</title> + $head()$ + <link rel="stylesheet" type="text/css" href="/static/browser.css"> + <script type="text/javascript" src="/static/gritter/js/jquery.gritter.js"></script> + <link rel="stylesheet" type="text/css" href="/static/gritter/css/jquery.gritter.css" /> + + + + <script> + jQuery(document).ready(initChat); + var Nick = $json_user_nick$; + var Room = $json_room_key$; + var Timestamp = $timestamp$; + var PostedMessages = []; + var growlize = true; + </script> + + $if(isadminroom)$ + <style> + iframe { + z-index: 50000; + position: fixed; + top: 300px; + right: 25px; + } + </style> + <script src="http://widgets.getclicky.com/tally/?site_id=170656&sitekey=736f7dd41a0612d8d50797c65768e71a&width=175&height=250&title=Visitors" type="text/javascript"></script> $endif$ + </head> + <body> + $banner()$ + <div id="chatrap"> + <div id="logc"> + <div id="content"> + + <div id="rapper"> + <div id="loghead"></div> + </div> + + </div> + <div id="messagePane"> + <div id="messageList"> + <iframe src="/static/search/search.html" style="width:100%;height:100%;padding:0px;background-color: #fff; position:absolute; top:0px; left:0px; border:none; allowtransparency="true" scrolling="no" ></iframe> + + + </div> + $if(user_nick)$ + <div id="msgInputDiv"> + <input id="msgInput" class="msgInput" type="input" /> + <input id="msgSubmit" type="submit" value="Send Image URL" + /> + </div> + $endif$ + </div> + </div> + </div> + </div> +</div> +</div> + + </div> + <div id="footerc"> + <p> + $footer()$</p> + <p> + </p> + </div> </body> + </html> diff --git a/template/head.st b/template/head.st index 078f0fd..078f0fd 100644..100755 --- a/template/head.st +++ b/template/head.st diff --git a/template/log.st b/template/log.st index 976d0e6..60eb3d5 100644..100755 --- a/template/log.st +++ b/template/log.st @@ -2,10 +2,9 @@ <head> <title>$roomname$ Log</title> $head()$ + <link rel="stylesheet" type="text/css" href="/static/profile.css"> <style> - body { - margin: 100px 50px; - } + </style> <script> jQuery(document).ready(initLog); @@ -13,33 +12,47 @@ </head> <body> $banner()$ - <h2>Log</h2> + <div id="chatrap"> + + + <div id="log"> + <div id="loghead"> + + </div> + <br> + <div id="pnav"> - <div style="text-align: right;"> - $if(prev)$ - <a href="/$roomkey$/log/$prev$">PREV DUMPS</a> - $endif$ - $if(next)$ - <a href="/$roomkey$/log/$next$">MORE DUMPS</a> + <a href="/$roomkey$/log/$next$"><- OLD DUMPS</a> + $endif$ + + $if(prev)$ + <a href="/$roomkey$/log/$prev$">NEW DUMPS -></a> $endif$ </div> + <div id="posts"> $if(dumps)$ $dumps: { d | $logged_dump(dump=d)$ }$ $else$ No dumps! $endif$ + <div id="pnav"> - <div style="text-align: right;"> - $if(prev)$ - <a href="/$roomkey$/log/$prev$">PREV DUMPS</a> - $endif$ - $if(next)$ - <a href="/$roomkey$/log/$next$">MORE DUMPS</a> + <a href="/$roomkey$/log/$next$"><- OLD DUMPS</a> + $endif$ + + $if(prev)$ + <a href="/$roomkey$/log/$prev$">NEW DUMPS -></a> $endif$ </div> + + + <div id="footer"> + $footer()$ + </div></div> + </body> </html> diff --git a/template/profile.st b/template/profile.st index cd216e0..91ca683 100755 --- a/template/profile.st +++ b/template/profile.st @@ -2,7 +2,7 @@ <head> <title>$nick$'s dump.fm</title> $head()$ - <link rel="stylesheet" type="text/css" href="/static/profile.css"> + <link rel="stylesheet" type="text/css" media="screen" href="/static/profile.css"> <script type="text/javascript" src="/static/jquery.editinplace.1.0.1.packed.js"></script> <script> @@ -36,9 +36,16 @@ $else$ <h3> </h3> <h3> </h3> + <h3> </h3> <h3> </h3> <h3> </h3> + <h3> </h3><div id="newuser"> <h3>This is your user log, it's where all the images you post are saved. <br> To get started join <a href="/chat">Room A</a> and post a few pictures.</h3> + <h3> </h3></div> + <h3> </h3> + <h3> </h3> <h3> </h3> + <h3> </h3> + <h3> </h3> $endif$ <p> </p> <div id="pnav"> |
