all repos — h3rald @ 95852c1ef41d46210eb16c78a0bed8483166c91b

The sources of https://h3rald.com

Changed slider plugin; Customized Juitter.
h3rald h3rald@h3rald.com
Thu, 30 Jul 2009 10:26:10 +0200
commit

95852c1ef41d46210eb16c78a0bed8483166c91b

parent

d9bee47b7d38d33a2a7a5e102df098f140cf6e00

D ui-dev/css/coda-slider.css

@@ -1,105 +0,0 @@

- - * { margin: 0; padding: 0 } - /* I've used a hard CSS reset above, but you should consider a more sophisticated reset, such as this one: http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/ */ - - - p.intro { border-bottom: 1px solid #ccc; margin-bottom: 20px; padding: 20px 0 30px 0; text-align: center; width: 100% } - - - - a:focus { outline:none } - - img { border: 0 } - - - - - .stripViewer .panelContainer .panel ul { - text-align: left; - margin: 0 15px 0 30px; - } - - .slider-wrap { /* This div isn't entirely necessary but good for getting the side arrows vertically centered */ - margin: 20px 0; - position: relative; - width: 100%; - } - - /* These 2 lines specify style applied while slider is loading */ - .csw {width: 100%; height: 460px; background: #fff; overflow: scroll} - .csw .loading {margin: 200px 0 300px 0; text-align: center} - - .stripViewer { /* This is the viewing window */ - position: relative; - overflow: hidden; - margin: auto; - width: 700px; /* Also specified in .stripViewer .panelContainer .panel below */ - height: 460px; - clear: both; - background: #fff; - } - - .stripViewer .panelContainer { /* This is the big long container used to house your end-to-end divs. Width is calculated and specified by the JS */ - position: relative; - left: 0; top: 0; - width: 100%; - list-style-type: none; - /* -moz-user-select: none; // This breaks CSS validation but stops accidental (and intentional - beware) panel highlighting in Firefox. Some people might find this useful, crazy fools. */ - } - - .stripViewer .panelContainer .panel { /* Each panel is arranged end-to-end */ - float:left; - height: 100%; - position: relative; - width: 700px; /* Also specified in .stripViewer above */ - } - - .stripViewer .panelContainer .panel .wrapper { /* Wrapper to give some padding in the panels, without messing with existing panel width */ - padding: 10px; - } - - .stripNav { /* This is the div to hold your nav (the UL generated at run time) */ - margin: auto; - display:none; - } - - .stripNav ul { /* The auto-generated set of links */ - list-style: none; - } - - .stripNav ul li { - float: left; - margin-right: 2px; /* If you change this, be sure to adjust the initial value of navWidth in coda-slider.1.1.1.js */ - } - - - - .stripNavL, .stripNavR { /* The left and right arrows */ - position: absolute; - top: 230px; - text-indent: -9000em; - } - - .stripNavL a, .stripNavR a { - display: block; - height: 40px; - width: 40px; - } - - .stripNavL { - left: 0; - } - - .stripNavR { - right: 0; - } - - .stripNavL { - background: url("../images/coda-slider/arrow-left.gif") no-repeat center; - } - - .stripNavR { - background: url("../images/coda-slider/arrow-right.gif") no-repeat center; - } - -
M ui-dev/css/layout.cssui-dev/css/layout.css

@@ -198,3 +198,44 @@ {

font-size: 95%; color: #CACACA; } + +/* slider */ + +#slider { + width: 620px; + margin: 0 auto; + position: relative; +} + +.scroll { + height: 250px; + overflow: auto; + position: relative; /* fix for IE to respect overflow */ + clear: left; + background: #FFFFFF url(images/content_pane-gradient.gif) repeat-x scroll left bottom; +} + +.scrollContainer div.panel { + padding: 20px; + height: 210px; + width: 580px; /* change to 560px if not using JS to remove rh.scroll */ +} +.scrollButtons { + position: absolute; + top: 150px; + cursor: pointer; +} + +.scrollButtons.left { + left: -20px; +} + +.scrollButtons.right { + right: -20px; +} + +/* Juitter */ + +.juitterAvatar, .JRM { +} +
M ui-dev/home.htmui-dev/home.htm

@@ -23,43 +23,30 @@ <link href="css/elements.css" media="all" rel="stylesheet" type="text/css">

<link href="css/coda-slider.css" media="all" rel="stylesheet" type="text/css"> -<script type="text/javascript" src="js/jquery-1.3.2.js"></script> -<script src="js/cufon-yui.js" type="text/javascript"></script> -<script src="js/Cardo_400.font.js" type="text/javascript"></script> + <script type="text/javascript" src="js/jquery-1.3.2.js"></script> + <script src="js/cufon-yui.js" type="text/javascript"></script> + <script src="js/Cardo_400.font.js" type="text/javascript"></script> <!-- JQuery Plugins --> -<script src="js/jquery-easing.1.2.pack.js" type="text/javascript"></script> -<script src="js/jquery-easing-compatibility.1.2.pack.js" type="text/javascript"></script> -<script src="js/coda-slider.1.1.1.js" type="text/javascript"></script> -<script language="javascript" src="js/jquery.juitter.js" type="text/javascript"></script> - -<script type="text/javascript"> - $(document).ready(function() { - $.Juitter.start({ - searchType:"fromUser", // needed, you can use "searchWord", "fromUser", "toUser" - searchObject:"h3rald", // needed, you can insert a username here or a word to be searched for, if you wish multiple search, separate the words by comma. + <script src="js/jquery.scrollTo-min.js" type="text/javascript"></script> + <script src="js/jquery.localscroll-min.js" type="text/javascript"></script> + <script src="js/jquery.serialScroll-min.js" type="text/javascript"></script> + <script src="js/slider.js" type="text/javascript"></script> + <script src="js/jquery.timeago.js" type="text/javascript"></script> + <script src="js/jquery.juitter.js" type="text/javascript"></script> + <script src="js/jquery.juitter.system.js" type="text/javascript"></script> - live:"live-15", // the number after "live-" indicates the time in seconds to wait before request the Twitter API for updates. - placeHolder:"twitter", // Set a place holder DIV which will receive the list of tweets example <div id="juitterContainer"></div> - loadMSG: "Loading messages...", // Loading message, if you want to show an image, fill it with "image/gif" and go to the next variable to set which image you want to use on - total: 10, // number of tweets to be show - max 100 - nameUser:"image", // insert "image" to show avatar of "text" to show the name of the user that sent the tweet - openExternalLinks:"newWindow" // here you can choose how to open link to external websites, "newWindow" or "sameWindow" - }) - }); -</script> -<!-- Initialize each slider on the page. Each slider must have a unique id --> -<script type="text/javascript"> - jQuery(window).bind("load", function() { - jQuery("div#slider").codaSlider() - }); -</script> -<script type="text/javascript"> - Cufon.replace('#navigation'); - Cufon.replace('h3')('h2')('h4')('h5'); -</script> -</head> -<body> + <script type="text/javascript"> + $(document).ready(function() { + $.slider(); + }); + </script> + <script type="text/javascript"> + Cufon.replace('#navigation'); + Cufon.replace('h3')('h2')('h4')('h5'); + </script> + </head> + <body> <div id="wrapper"> <a name="top"></a> <div id="header">

@@ -75,11 +62,11 @@ <h1><img alt="H3RALD" src="images/logo.png"></h1>

</div> <div id="header-right"> <ul id="navigation"> - <li>/ <a href="#1" class="cross-link">latest</a></li> - <li>/ <a href="#2" class="cross-link">popular</a></li> - <li>/ <a href="#3" class="cross-link">tags</a></li> - <li>/ <a href="#4" class="cross-link">projects</a></li> - <li>/ <a href="#5" class="cross-link">about</a></li> + <li>/ <a href="#latest" class="cross-link">latest</a></li> + <li>/ <a href="#popular" class="cross-link">popular</a></li> + <li>/ <a href="#tags" class="cross-link">tags</a></li> + <li>/ <a href="#projects" class="cross-link">projects</a></li> + <li>/ <a href="#about" class="cross-link">about</a></li> </ul> </div>

@@ -110,240 +97,54 @@ <p>Welcome to <span class="caps">H3RALD</span>.com, Fabio Cevasco’s personal web site.</p>

</div> - <div class="slider-wrap"> - <div id="slider" class="csw"> - <div class="panelContainer"> + <div id="slider"> + <div class="scroll"> + <div class="scrollContainer"> - <div class="panel" title="Latest"> - <div class="wrapper"> - - <h3>Latest Articles</h3> - - <div class="article"> - <span class="article-title"> - <a href="http://www.h3rald.com/articles/11-07-2009">11th of July 2009</a> - </span> - - <div class="info"> - - <img alt="Tags: " src="images/tag.gif"> - <a href="http://www.h3rald.com/tags/wedding/" class="tag">wedding</a> - <img alt=" Comments: " src="images/comment.gif"><span style="color: rgb(49, 54, 52);">2</span> - - </div> - - </div> - - - - <div class="article"> - <span class="article-title"> - <a href="http://www.h3rald.com/articles/log-jun-2009">Personal Log - June 2009</a> - </span> - - <div class="info"> - - <img alt="Tags: " src="images/tag.gif"> - <a href="http://www.h3rald.com/tags/personal_log/" class="tag">personal_log</a> | <a href="http://www.h3rald.com/tags/vim/" class="tag">vim</a> | <a href="http://www.h3rald.com/tags/ruby/" class="tag">ruby</a> | <a href="http://www.h3rald.com/tags/wedding/" class="tag">wedding</a> - <img alt=" Comments: " src="images/comment.gif"><span style="color: rgb(49, 54, 52);">0</span> - - </div> - - </div> - - - - <div class="article"> - <span class="article-title"> - <a href="http://www.h3rald.com/articles/herald-vim-color-scheme">Herald (Vim Color Scheme)</a> - </span> - - <div class="info"> - - <img alt="Tags: " src="images/tag.gif"> - <a href="http://www.h3rald.com/tags/programming/" class="tag">programming</a> | <a href="http://www.h3rald.com/tags/vim/" class="tag">vim</a> - <img alt=" Comments: " src="images/comment.gif"><span style="color: rgb(49, 54, 52);">9</span> - - </div> - - </div> - - - - <div class="article"> - <span class="article-title"> - <a href="http://www.h3rald.com/articles/log-may-2009">Personal Log - May 2009</a> - </span> - - <div class="info"> - - <img alt="Tags: " src="images/tag.gif"> - <a href="http://www.h3rald.com/tags/personal_log/" class="tag">personal_log</a> | <a href="http://www.h3rald.com/tags/programming/" class="tag">programming</a> | <a href="http://www.h3rald.com/tags/wedding/" class="tag">wedding</a> - <img alt=" Comments: " src="images/comment.gif"><span style="color: rgb(49, 54, 52);">0</span> - - </div> - - </div> - - - - <div class="article"> - <span class="article-title"> - <a href="http://www.h3rald.com/articles/log-apr-2009">Personal Log - April 2009</a> - </span> - - <div class="info"> - - <img alt="Tags: " src="images/tag.gif"> - <a href="http://www.h3rald.com/tags/personal_log/" class="tag">personal_log</a> | <a href="http://www.h3rald.com/tags/ruby/" class="tag">ruby</a> | <a href="http://www.h3rald.com/tags/books/" class="tag">books</a> | <a href="http://www.h3rald.com/tags/wedding/" class="tag">wedding</a> - <img alt=" Comments: " src="images/comment.gif"><span style="color: rgb(49, 54, 52);">1</span> - - </div> - - </div> - - - </div> - + <div class="panel" id="latest"> + <h3>Latest Articles</h3> + TODO </div> - <div class="panel" title="Popular Articles"> - <div class="wrapper"> - <h3>Popular Articles</h3> - - <div class="article"> - <span class="article-title"> - <a href="http://www.h3rald.com/articles/10-programming-languages">10 programming languages worth checking out</a> - </span> - - <div class="info"> - - <img alt="Tags: " src="images/tag.gif"> - <a href="http://www.h3rald.com/tags/programming/" class="tag">programming</a> - <img alt=" Comments: " src="images/comment.gif"><span style="color: rgb(49, 54, 52);">43</span> - - </div> - - </div> - - - - <div class="article"> - <span class="article-title"> - <a href="http://www.h3rald.com/articles/10-reasons-to-learn-ruby">10 Reasons to Learn Ruby</a> - </span> - - <div class="info"> - - <img alt="Tags: " src="images/tag.gif"> - <a href="http://www.h3rald.com/tags/ruby/" class="tag">ruby</a> - <img alt=" Comments: " src="images/comment.gif"><span style="color: rgb(49, 54, 52);">31</span> - - </div> - - </div> - - - - <div class="article"> - <span class="article-title"> - <a href="http://www.h3rald.com/articles/firefox-lovers-guide-to-opera">A Firefox Lover's Guide to Opera</a> - </span> - - <div class="info"> - - <img alt="Tags: " src="images/tag.gif"> - <a href="http://www.h3rald.com/tags/browsers/" class="tag">browsers</a> | <a href="http://www.h3rald.com/tags/review/" class="tag">review</a> | <a href="http://www.h3rald.com/tags/opera/" class="tag">Opera</a> | <a href="http://www.h3rald.com/tags/firefox/" class="tag">Firefox</a> - <img alt=" Comments: " src="images/comment.gif"><span style="color: rgb(49, 54, 52);">25</span> - - </div> - - </div> - - - - <div class="article"> - <span class="article-title"> - <a href="http://www.h3rald.com/articles/komodo-edit-review">A closer look at Komodo Edit</a> - </span> - - <div class="info"> - - <img alt="Tags: " src="images/tag.gif"> - <a href="http://www.h3rald.com/tags/review/" class="tag">review</a> | <a href="http://www.h3rald.com/tags/programming/" class="tag">programming</a> | <a href="http://www.h3rald.com/tags/software/" class="tag">software</a> - <img alt=" Comments: " src="images/comment.gif"><span style="color: rgb(49, 54, 52);">13</span> - - </div> - - </div> - - - - <div class="article"> - <span class="article-title"> - <a href="http://www.h3rald.com/articles/rails-inspired-php-frameworks">Rails-inspired PHP frameworks</a> - </span> - - <div class="info"> - - <img alt="Tags: " src="images/tag.gif"> - <a href="http://www.h3rald.com/tags/frameworks/" class="tag">Frameworks</a> | <a href="http://www.h3rald.com/tags/review/" class="tag">review</a> | <a href="http://www.h3rald.com/tags/cakephp/" class="tag">CakePHP</a> | <a href="http://www.h3rald.com/tags/rails/" class="tag">Rails</a> - <img alt=" Comments: " src="images/comment.gif"><span style="color: rgb(49, 54, 52);">6</span> - - </div> - - </div> - - - </div> + <div class="panel" id="popular"> + <h3>Popular Articles</h3> + TODO </div> - <div class="panel" title="Tags"> - <div class="wrapper"> - <h3>Tags</h3> - <div id="tags"> - <ul> - <li><a href="#">Ruby</a></li> - <li><a href="#">Programming</a></li> - <li><a href="#">RedBook</a></li> - <li><a href="#">Productivity</a></li> - <li><a href="#">Test #1</a></li> - <li><a href="#">Test #2</a></li> - <li><a href="#">Test #3</a></li> - <li><a href="#">Test #4</a></li> - </ul> + <div class="panel" id="tags"> + <h3>Tags</h3> + <ul> + <li><a href="#">Ruby</a></li> + <li><a href="#">Programming</a></li> + <li><a href="#">RedBook</a></li> + <li><a href="#">Productivity</a></li> + <li><a href="#">Test #1</a></li> + <li><a href="#">Test #2</a></li> + <li><a href="#">Test #3</a></li> + <li><a href="#">Test #4</a></li> + </ul> - </div> - </div> </div> - <div class="panel" title="Projects"> - <div class="wrapper"> - <h3>Projects</h3> - <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus porta tortor sed metus. Nam pretium. Sed tempor. Integer ullamcorper, odio quis porttitor sagittis, nisl erat tincidunt massa, eu eleifend eros nibh sollicitudin est. Nulla dignissim. Mauris sollicitudin, arcu id sagittis placerat, tellus mauris egestas felis, eget interdum mi nibh vel lorem. Aliquam egestas hendrerit massa. Suspendisse sed nunc et lacus feugiat hendrerit. Nam cursus euismod augue. Aenean vehicula nisl eu quam luctus adipiscing. Nunc consequat justo pretium orci. Mauris hendrerit fermentum massa. Aenean consectetuer est ut arcu. Aliquam nisl massa, blandit at, accumsan sed, porta vel, metus. Duis fringilla quam ut eros.</p> - <p>Sed eu ligula eget eros vulputate tincidunt. Etiam sapien urna, auctor a, viverra sit amet, convallis a, enim. Nullam ut nulla. Nam laoreet massa aliquet tortor. Mauris in quam ut dui bibendum malesuada. Nulla vel erat. Pellentesque metus risus, aliquet eget, eleifend in, ultrices vitae, nisi. Vivamus non nulla. Praesent ac lacus. Donec augue turpis, convallis sed, lacinia et, vestibulum nec, lacus. Suspendisse feugiat semper nunc. Donec nisl elit, varius sed, sodales volutpat, commodo in, elit. Proin ornare hendrerit lectus. Sed non dolor. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis suscipit. Mauris egestas tincidunt lectus. Phasellus sed quam et velit laoreet pretium. Nunc metus.</p> - </div> + <div class="panel" id="projects"> + <h3>Projects</h3> </div> - <div class="panel" title="About"> - <div class="wrapper"> - <h3>About</h3> - <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Vivamus porta tortor sed metus. Nam pretium. Sed tempor. Integer ullamcorper, odio quis porttitor sagittis, nisl erat tincidunt massa, eu eleifend eros nibh sollicitudin est. Nulla dignissim. Mauris sollicitudin, arcu id sagittis placerat, tellus mauris egestas felis, eget interdum mi nibh vel lorem. Aliquam egestas hendrerit massa. Suspendisse sed nunc et lacus feugiat hendrerit. Nam cursus euismod augue. Aenean vehicula nisl eu quam luctus adipiscing. Nunc consequat justo pretium orci. Mauris hendrerit fermentum massa. Aenean consectetuer est ut arcu. Aliquam nisl massa, blandit at, accumsan sed, porta vel, metus. Duis fringilla quam ut eros.</p> - <p>Sed eu ligula eget eros vulputate tincidunt. Etiam sapien urna, auctor a, viverra sit amet, convallis a, enim. Nullam ut nulla. Nam laoreet massa aliquet tortor. Mauris in quam ut dui bibendum malesuada. Nulla vel erat. Pellentesque metus risus, aliquet eget, eleifend in, ultrices vitae, nisi. Vivamus non nulla. Praesent ac lacus. Donec augue turpis, convallis sed, lacinia et, vestibulum nec, lacus. Suspendisse feugiat semper nunc. Donec nisl elit, varius sed, sodales volutpat, commodo in, elit. Proin ornare hendrerit lectus. Sed non dolor. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis suscipit. Mauris egestas tincidunt lectus. Phasellus sed quam et velit laoreet pretium. Nunc metus.</p> - </div> + <div class="panel" id="about"> + <h3>About</h3> </div> - </div><!-- .panelContainer --> - </div><!-- #slider1 --> - </div><!-- .slider-wrap --> + </div><!-- .scrollContainer --> + </div><!-- .scroll --> + </div><!-- #slider --> <h3>Bookmarks</h3> <div id="delicious"> - + </div> - <h3>Thoughts</h3> + <h3>Thoughts</h3> <div id="twitter"> </div>

@@ -376,6 +177,6 @@ </div>

</div> <script type="text/javascript"> Cufon.now(); - </script> -</body> - </html> + </script> + </body> +</html>
D ui-dev/js/coda-slider.1.1.1.js

@@ -1,133 +0,0 @@

-/* - jQuery Coda-Slider v1.1 - http://www.ndoherty.com/coda-slider - - Copyright (c) 2007 Niall Doherty - - Inspired by the clever folks at http://www.panic.com/coda - Many thanks to Gian Carlo Mingati. Coda-Slider is a heavily modified version of his slideViewer, which can be found at http://www.gcmingati.net/wordpress/wp-content/lab/jquery/imagestrip/imageslide-plugin.html - - Requirements: - - jQuery 1.2 ... available via http://www.jquery.com - - jQuery easing plugin (1.2) ... available via http://gsgd.co.uk/sandbox/jquery/easing/ - - jQuery easing compatability plugin ... available via http://gsgd.co.uk/sandbox/jquery/easing/ - - CSS included in index.html -*/ - -jQuery(function(){ - jQuery("div.csw").prepend("<p class='loading'>Loading...<br /><img src='images/ajax-loader.gif' alt='loading...'/ ></p>"); -}); -var j = 0; -jQuery.fn.codaSlider = function(settings) { - settings = jQuery.extend({ - easeFunc: "expoinout", - easeTime: 750, - toolTip: false - }, settings); - return this.each(function(){ - var container = jQuery(this); - // Remove the preloader gif... - container.find("p.loading").remove(); - // Self-explanatory... - container.removeClass("csw").addClass("stripViewer"); - // Get the width of a panel, set from CSS... - var panelWidth = container.find("div.panel").width(); - // panelCount gives us a count of the panels in the container... - var panelCount = container.find("div.panel").size(); - // Calculate the width of all the panels when lined up end-to-end... - var stripViewerWidth = panelWidth*panelCount; - // Use the above width to specify the CSS width for the panelContainer element... - container.find("div.panelContainer").css("width" , stripViewerWidth); - // Set the navWidth as a multiple of panelCount to account for margin-right on each li - var navWidth = panelCount*2; - - // Specify the current panel. - // If the loaded URL has a hash (cross-linking), we're going to use that hash to give the slider a specific starting position... - if (location.hash && parseInt(location.hash.slice(1)) <= panelCount) { - var cPanel = parseInt(location.hash.slice(1)); - var cnt = - (panelWidth*(cPanel - 1)); - jQuery(this).find("div.panelContainer").css({ left: cnt }); - // Otherwise, we'll just set the current panel to 1... - } else { - var cPanel = 1; - }; - - // Create appropriate nav - container.each(function(i) { - - // Create the Left and Right arrows - jQuery(this).before("<div class='stripNavL' id='stripNavL" + j + "'><a href='#'>Left</a><\/div>"); - jQuery(this).after("<div class='stripNavR' id='stripNavR" + j + "'><a href='#'>Right</a><\/div>"); - - // Create the Tabs - jQuery(this).before("<div class='stripNav' id='stripNav" + j + "'><ul><\/ul><\/div>"); - jQuery(this).find("div.panel").each(function(n) { - jQuery("div#stripNav" + j + " ul").append("<li class='tab" + (n+1) + "'><a href='#" + (n+1) + "'>" + jQuery(this).attr("title") + "<\/a><\/li>"); - }); - - // Tab nav - jQuery("div#stripNav" + j + " a").each(function(z) { - // Figure out the navWidth by adding up the width of each li - navWidth += jQuery(this).parent().width(); - // What happens when a nav link is clicked - jQuery(this).bind("click", function() { - jQuery(this).addClass("current").parent().parent().find("a").not(jQuery(this)).removeClass("current"); // wow! - var cnt = - (panelWidth*z); - cPanel = z + 1; - jQuery(this).parent().parent().parent().next().find("div.panelContainer").animate({ left: cnt}, settings.easeTime, settings.easeFunc); - }); - }); - - // Left nav - jQuery("div#stripNavL" + j + " a").click(function(){ - if (cPanel == 1) { - var cnt = - (panelWidth*(panelCount - 1)); - cPanel = panelCount; - jQuery(this).parent().parent().find("div.stripNav a.current").removeClass("current").parent().parent().find("li:last a").addClass("current"); - } else { - cPanel -= 1; - var cnt = - (panelWidth*(cPanel - 1)); - jQuery(this).parent().parent().find("div.stripNav a.current").removeClass("current").parent().prev().find("a").addClass("current"); - }; - jQuery(this).parent().parent().find("div.panelContainer").animate({ left: cnt}, settings.easeTime, settings.easeFunc); - // Change the URL hash (cross-linking)... - location.hash = cPanel; - return false; - }); - - // Right nav - jQuery("div#stripNavR" + j + " a").click(function(){ - if (cPanel == panelCount) { - var cnt = 0; - cPanel = 1; - jQuery(this).parent().parent().find("div.stripNav a.current").removeClass("current").parent().parent().find("a:eq(0)").addClass("current"); - } else { - var cnt = - (panelWidth*cPanel); - cPanel += 1; - jQuery(this).parent().parent().find("div.stripNav a.current").removeClass("current").parent().next().find("a").addClass("current"); - }; - jQuery(this).parent().parent().find("div.panelContainer").animate({ left: cnt}, settings.easeTime, settings.easeFunc); - // Change the URL hash (cross-linking)... - location.hash = cPanel; - return false; - }); - - // Same-page cross-linking - jQuery("a.cross-link").click(function(){ - jQuery(this).parents().find(".stripNav ul li a:eq(" + (parseInt(jQuery(this).attr("href").slice(1)) - 1) + ")").trigger('click'); - }); - - // Set the width of the nav using the navWidth figure we calculated earlier. This is so the nav can be centred above the slider - jQuery("div#stripNav" + j).css("width" , navWidth); - - // Specify which tab is initially set to "current". Depends on if the loaded URL had a hash or not (cross-linking). - if (location.hash && parseInt(location.hash.slice(1)) <= panelCount) { - jQuery("div#stripNav" + j + " a:eq(" + (location.hash.slice(1) - 1) + ")").addClass("current"); - } else { - jQuery("div#stripNav" + j + " a:eq(0)").addClass("current"); - } - - }); - - j++; - }); -};
D ui-dev/js/jquery-easing-compatibility.1.2.pack.js

@@ -1,10 +0,0 @@

-/* - * jQuery Easing Compatibility v1 - http://gsgd.co.uk/sandbox/jquery.easing.php - * - * Adds compatibility for applications that use the pre 1.2 easing names - * - * Copyright (c) 2007 George Smith - * Licensed under the MIT License: - * http://www.opensource.org/licenses/mit-license.php - */ -eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('0.C(0.1,{7:2(x,t,b,c,d){3 0.1.D(x,t,b,c,d)},5:2(x,t,b,c,d){3 0.1.6(x,t,b,c,d)},h:2(x,t,b,c,d){3 0.1.B(x,t,b,c,d)},A:2(x,t,b,c,d){3 0.1.m(x,t,b,c,d)},y:2(x,t,b,c,d){3 0.1.w(x,t,b,c,d)},v:2(x,t,b,c,d){3 0.1.u(x,t,b,c,d)},s:2(x,t,b,c,d){3 0.1.r(x,t,b,c,d)},q:2(x,t,b,c,d){3 0.1.p(x,t,b,c,d)},o:2(x,t,b,c,d){3 0.1.n(x,t,b,c,d)},8:2(x,t,b,c,d){3 0.1.l(x,t,b,c,d)},g:2(x,t,b,c,d){3 0.1.j(x,t,b,c,d)},i:2(x,t,b,c,d){3 0.1.k(x,t,b,c,d)},z:2(x,t,b,c,d){3 0.1.f(x,t,b,c,d)},e:2(x,t,b,c,d){3 0.1.a(x,t,b,c,d)},9:2(x,t,b,c,d){3 0.1.4(x,t,b,c,d)}});',40,40,'jQuery|easing|function|return|easeInOutBack|easeOut|easeOutQuad|easeIn|elasin|backinout|easeOutBack||||backout|easeInBack|elasout|easeInOut|elasinout|easeOutElastic|easeInOutElastic|easeInElastic|easeInExpo|easeInOutBounce|bounceinout|easeOutBounce|bounceout|easeInBounce|bouncein||easeInOutExpo|expoinout|easeOutExpo||expoout|backin|expoin|easeInOutQuad|extend|easeInQuad'.split('|'),0,{}))
D ui-dev/js/jquery-easing.1.2.pack.js

@@ -1,11 +0,0 @@

-/* - * jQuery EasIng v1.1.2 - http://gsgd.co.uk/sandbox/jquery.easIng.php - * - * Uses the built In easIng capabilities added In jQuery 1.1 - * to offer multiple easIng options - * - * Copyright (c) 2007 George Smith - * Licensed under the MIT License: - * http://www.opensource.org/licenses/mit-license.php - */ -eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('l.Y(l.n,{15:9(x,t,b,c,d){6 c*(t/=d)*t+b},V:9(x,t,b,c,d){6-c*(t/=d)*(t-2)+b},U:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t+b;6-c/2*((--t)*(t-2)-1)+b},17:9(x,t,b,c,d){6 c*(t/=d)*t*t+b},P:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t+1)+b},R:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t+b;6 c/2*((t-=2)*t*t+2)+b},O:9(x,t,b,c,d){6 c*(t/=d)*t*t*t+b},13:9(x,t,b,c,d){6-c*((t=t/d-1)*t*t*t-1)+b},S:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t+b;6-c/2*((t-=2)*t*t*t-2)+b},18:9(x,t,b,c,d){6 c*(t/=d)*t*t*t*t+b},G:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t*t*t+1)+b},B:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t*t+b;6 c/2*((t-=2)*t*t*t*t+2)+b},M:9(x,t,b,c,d){6-c*8.A(t/d*(8.g/2))+c+b},C:9(x,t,b,c,d){6 c*8.m(t/d*(8.g/2))+b},D:9(x,t,b,c,d){6-c/2*(8.A(8.g*t/d)-1)+b},16:9(x,t,b,c,d){6(t==0)?b:c*8.h(2,10*(t/d-1))+b},E:9(x,t,b,c,d){6(t==d)?b+c:c*(-8.h(2,-10*t/d)+1)+b},F:9(x,t,b,c,d){e(t==0)6 b;e(t==d)6 b+c;e((t/=d/2)<1)6 c/2*8.h(2,10*(t-1))+b;6 c/2*(-8.h(2,-10*--t)+2)+b},I:9(x,t,b,c,d){6-c*(8.o(1-(t/=d)*t)-1)+b},12:9(x,t,b,c,d){6 c*8.o(1-(t=t/d-1)*t)+b},11:9(x,t,b,c,d){e((t/=d/2)<1)6-c/2*(8.o(1-t*t)-1)+b;6 c/2*(8.o(1-(t-=2)*t)+1)+b},K:9(x,t,b,c,d){f s=1.j;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.r(c)){a=c;f s=p/4}k f s=p/(2*8.g)*8.u(c/a);6-(a*8.h(2,10*(t-=1))*8.m((t*d-s)*(2*8.g)/p))+b},X:9(x,t,b,c,d){f s=1.j;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.r(c)){a=c;f s=p/4}k f s=p/(2*8.g)*8.u(c/a);6 a*8.h(2,-10*t)*8.m((t*d-s)*(2*8.g)/p)+c+b},N:9(x,t,b,c,d){f s=1.j;f p=0;f a=c;e(t==0)6 b;e((t/=d/2)==2)6 b+c;e(!p)p=d*(.3*1.5);e(a<8.r(c)){a=c;f s=p/4}k f s=p/(2*8.g)*8.u(c/a);e(t<1)6-.5*(a*8.h(2,10*(t-=1))*8.m((t*d-s)*(2*8.g)/p))+b;6 a*8.h(2,-10*(t-=1))*8.m((t*d-s)*(2*8.g)/p)*.5+c+b},Z:9(x,t,b,c,d,s){e(s==w)s=1.j;6 c*(t/=d)*t*((s+1)*t-s)+b},14:9(x,t,b,c,d,s){e(s==w)s=1.j;6 c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},H:9(x,t,b,c,d,s){e(s==w)s=1.j;e((t/=d/2)<1)6 c/2*(t*t*(((s*=(1.y))+1)*t-s))+b;6 c/2*((t-=2)*t*(((s*=(1.y))+1)*t+s)+2)+b},z:9(x,t,b,c,d){6 c-l.n.v(x,d-t,0,c,d)+b},v:9(x,t,b,c,d){e((t/=d)<(1/2.i)){6 c*(7.q*t*t)+b}k e(t<(2/2.i)){6 c*(7.q*(t-=(1.5/2.i))*t+.i)+b}k e(t<(2.5/2.i)){6 c*(7.q*(t-=(2.J/2.i))*t+.L)+b}k{6 c*(7.q*(t-=(2.Q/2.i))*t+.T)+b}},W:9(x,t,b,c,d){e(t<d/2)6 l.n.z(x,t*2,0,c,d)*.5+b;6 l.n.v(x,t*2-d,0,c,d)*.5+c*.5+b}});',62,71,'||||||return||Math|function|||||if|var|PI|pow|75|70158|else|jQuery|sin|easing|sqrt||5625|abs|||asin|easeOutBounce|undefined||525|easeInBounce|cos|easeInOutQuint|easeOutSine|easeInOutSine|easeOutExpo|easeInOutExpo|easeOutQuint|easeInOutBack|easeInCirc|25|easeInElastic|9375|easeInSine|easeInOutElastic|easeInQuart|easeOutCubic|625|easeInOutCubic|easeInOutQuart|984375|easeInOutQuad|easeOutQuad|easeInOutBounce|easeOutElastic|extend|easeInBack||easeInOutCirc|easeOutCirc|easeOutQuart|easeOutBack|easeInQuad|easeInExpo|easeInCubic|easeInQuint'.split('|'),0,{}))
D ui-dev/js/jquery.delicious.js

@@ -1,248 +0,0 @@

-/* - * Del.icio.us jQuery plugin - * - * Copyright (c) 2007 Paul McLanahan - * - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - * - * $Id: jquery.delicious.js 6273 2009-03-11 13:27:54Z pmclanahan $ - */ - -(function($){ - -/** - * Load a list of bookmarks, tags, network members, and/or fans from delicious.com for - * a specific user using the delicious.com JSON feeds (http://delicious.com/help/feeds/), - * and without need for any server-side component. - * - * @param String user The delicious.com user who's bookmarks you want to load. - * @param Map options key/value pairs of optional settings for the list display. - * @option String type (posts|tags|network|fans) The type of information you wish to retrieve. Default: 'posts' - * @option String itemTag The type of HTML element you wish to surround every item in the list. Default: 'li' - * @option String wrapTag The type of HTML element you wish to surround the entire list. Default: 'ul' - * @option Boolean append If true, this will cause the new list to be appended to the selected elements, if false it will replace it's contents with the list. Default: false - * @option Boolean favicon If true and the type option is posts, this will attempt to load the favicon.ico file from the domain of each bookmark. Default: true - * @param Map tOptions key/value pairs of optional settings for the list itself. - * @option Interger count Available for types 'posts' and 'tags'. Indicates the number of items to retrieve. - * @option Interger atleast Available for type 'tags'. Select only tags with this minimum number of posts associated. - * @option String sort (alpha|count) Available for type 'tags'. Sort the list alphanumerically or by number of posts respectively. - * - * @type jQuery - * @name Delicious.com - * @cat Plugins/Delicious.com - * - */ -$.fn.delicious = function(user,options,tOptions,cbFnc){ - $.defineTag('script'); - var opts = $.extend({'user':user},$.delicious.opts,options), - $self = this, - fn = cbFnc || jQuery.delicious.parsers[opts.type], - url = 'http://feeds.delicious.com/v2/json/' + (opts.type=='posts'?'':opts.type+'/') + user - + (opts.type=='posts' && opts.tag? '/'+opts.tag : '') + '?', - rOpts = $.extend({raw:'true',callback:name(fn)},$.delicious.types[opts.type],tOptions); - - // prepare tag names for DOM Creator - opts.itemTag = opts.itemTag.toUpperCase(); - opts.wrapTag = opts.wrapTag.toUpperCase(); - url += $.param(rOpts); - // removed below due to jQuery 1.1.4 changing behavoir of append() to use $.ajax() to append script elements - // which failed b/c of cross domain security - //$('head').append($.SCRIPT({src:url,type:'text/javascript'})); - document.getElementsByTagName('head')[0].appendChild($.SCRIPT({src:url,type:'text/javascript'})); - return $self; - - // Ingenious name() closure function from Michael Geary - // http://mg.to/2006/01/25/json-for-jquery - function name( callback ) { - var i = $.delicious.callbacks.length; - - $.delicious.callbacks[i] = function( json ) { - delete $.delicious.callbacks[i]; - $self.each( function() { callback.apply(this,[json,opts]); } ); - }; - - return 'jQuery.delicious.callbacks['+i+']'; - }; -}; - -$.delicious = { - - callbacks : [], - - opts : { - type : 'posts', // possible values = posts, tags, url, network, or fans - itemTag : 'li', - wrapTag : 'ul', - append : false, - favicon : true, - popopen : false - }, - - types : { - posts : { - count : 20 - }, - tags : { - count : 20, - atleast : 1, - sort : 'alpha' - }, - network : {}, - fans : {} - }, - - // Prebuilt Callback Functions - parsers : { - posts : function(data,opts){ - var lis = []; - $.each(data,function(i,oPost){ - var fIcon, oSpan; - if(opts.favicon) - fIcon = $.IMG({src:oPost.u.split('/').splice(0,3).join('/')+'/favicon.ico',height:16,width:16,border:0}) - var a_opts = {href:oPost.u} - if(opts.popopen) a_opts['target'] = '_blank'; - lis[lis.length] = $[opts.itemTag]({}, - $.A(a_opts, opts.favicon ? fIcon : '', - oSpan = $.SPAN({},oPost.d) - ) - ); - if(opts.favicon){ - $(fIcon).css({display:'none',position:'absolute'}) - .bind('load',function(){$(this).show('slow')}); - $(oSpan).css({marginLeft:'20px',display:'block'}); - } - }); - if(!lis.length){ - lis[lis.length] = $[opts.itemTag]({}, - 'No posts available' - ); - } - $.delicious.add(this,$[opts.wrapTag]({},lis),opts); - }, - tags : function(data,opts){ - var lis = []; - $.each(data,function(tName,tCount){ - var fIcon, oSpan; - var a_opts = {href:'http://delicious.com/'+opts.user+'/'+tName}; - if(opts.popopen) a_opts['target'] = '_blank'; - lis[lis.length] = $[opts.itemTag]({}, - $.A(a_opts, tName + ' ('+tCount+')') - ); - }); - if(!lis.length){ - lis[lis.length] = $[opts.itemTag]({}, - 'No tags available' - ); - } - $.delicious.add(this,$[opts.wrapTag]({},lis),opts); - }, - network : function(data,opts){ - var lis = []; - $.each(data,function(i,name){ - var a_opts = {href:'http://delicious.com/'+name}; - if(opts.popopen) a_opts['target'] = '_blank'; - lis[lis.length] = $[opts.itemTag]({}, - $.A(a_opts, name) - ); - }); - if(!lis.length){ - lis[lis.length] = $[opts.itemTag]({}, - 'Nothing in network' - ); - } - $.delicious.add(this,$[opts.wrapTag]({},lis),opts); - }, - fans : function(data,opts){ - var lis = []; - $.each(data,function(i,name){ - var a_opts = {href:'http://delicious.com/'+name}; - if(opts.popopen) a_opts['target'] = '_blank'; - lis[lis.length] = $[opts.itemTag]({}, - $.A(a_opts, name) - ); - }); - if(!lis.length){ - lis[lis.length] = $[opts.itemTag]({}, - 'No fans' - ); - } - $.delicious.add(this,$[opts.wrapTag]({},lis),opts); - } - }, - - add : function(elm,obj,opts){ - $(elm)[opts.append?'append':'html'](obj); - } - -}; - -/* - * Code below by Michael Geary - * Included for convenience - */ - -// DOM element creator for jQuery and Prototype by Michael Geary -// http://mg.to/topics/programming/javascript/jquery -// Inspired by MochiKit.DOM by Bob Ippolito -// Free beer and free speech. Enjoy! - -$.defineTag = function( tag ) { - $[tag.toUpperCase()] = function() { - return $._createNode( tag, arguments ); - } -}; - -(function() { - var tags = [ - 'a', 'br', 'button', 'canvas', 'div', 'fieldset', 'form', - 'h1', 'h2', 'h3', 'hr', 'img', 'input', 'label', 'legend', - 'li', 'ol', 'optgroup', 'option', 'p', 'pre', 'select', - 'span', 'strong', 'table', 'tbody', 'td', 'textarea', - 'tfoot', 'th', 'thead', 'tr', 'tt', 'ul' ]; - for( var i = tags.length - 1; i >= 0; i-- ) { - $.defineTag( tags[i] ); - } -})(); - -$.NBSP = '\u00a0'; - -$._createNode = function( tag, args ) { - var fix = { 'class':'className', 'Class':'className' }; - var e; - try { - var attrs = args[0] || {}; - e = document.createElement( tag ); - for( var attr in attrs ) { - var a = fix[attr] || attr; - e[a] = attrs[attr]; - } - for( var i = 1; i < args.length; i++ ) { - var arg = args[i]; - if( arg == null ) continue; - if( arg.constructor != Array ) append( arg ); - else for( var j = 0; j < arg.length; j++ ) - append( arg[j] ); - } - } - catch( ex ) { - alert( 'Cannot create <' + tag + '> element:\n' + - args.toSource() + '\n' + args ); - e = null; - } - - function append( arg ) { - if( arg == null ) return; - var c = arg.constructor; - switch( typeof arg ) { - case 'number': arg = '' + arg; // fall through - case 'string': arg = document.createTextNode( arg ); - } - e.appendChild( arg ); - } - - return e; -}; - -})(jQuery);
M ui-dev/js/jquery.juitter.jsui-dev/js/jquery.juitter.js

@@ -121,9 +121,17 @@ var link = "http://twitter.com/"+item.from_user+"/status/"+item.id;

var tweet = $.Juitter.filter(item.text); - if(fromID=="image") mHTML="<a href='http://www.twitter.com/"+item.from_user+"'><img src='"+item.profile_image_url+"' alt='"+item.from_user+"' class='juitterAvatar' /></a> "+$.Juitter.textFormat(tweet)+" -| <span class='time'>"+item.created_at+"</span> |- <a href='" + link + "' class='JRM' "+openLink+">"+readMore+"</a>"; - else mHTML="<a href='http://www.twitter.com/"+item.from_user+"'>@"+item.from_user+":</a> "+$.Juitter.textFormat(tweet)+" -| <span class='time'>"+item.created_at+"</span> |- <a href='" + link + "' "+openLink+">"+readMore+"</a>"; - + switch(fromID){ + case "image": + mHTML="<a href='http://www.twitter.com/"+item.from_user+"'><img src='"+item.profile_image_url+"' alt='"+item.from_user+"' class='juitterAvatar' /></a> "+$.Juitter.textFormat(tweet)+" -| <span class='time'>"+item.created_at+"</span> |- <a href='" + link + "' class='JRM' "+openLink+">"+readMore+"</a>"; + break; + case "text": + mHTML="<a href='http://www.twitter.com/"+item.from_user+"'>@"+item.from_user+":</a> "+$.Juitter.textFormat(tweet)+" -| <span class='time'>"+item.created_at+"</span> |- <a href='" + link + "' "+openLink+">"+readMore+"</a>"; + break; + case "h3rald": + mHTML=$.Juitter.textFormat(tweet)+"<br/><span class='time'>["+$.timeago(item.created_at)+"]</span> "; + break; + } $("<li></li>") .html(mHTML) .attr('id', 'twittLI'+msgNb)
M ui-dev/js/jquery.juitter.system.jsui-dev/js/jquery.juitter.system.js

@@ -6,65 +6,15 @@

// The values below will overwrite the ones on the Juitter default configuration. // They are optional here. // I'm changing here as a example only - lang:"en", // restricts the search by the given language - live:"live-15", // the number after "live-" indicates the time in seconds to wait before request the Twitter API for updates. - placeHolder:"juitterContainer", // Set a place holder DIV which will receive the list of tweets example <div id="juitterContainer"></div> + lang:"", // restricts the search by the given language + live:"live-120", // the number after "live-" indicates the time in seconds to wait before request the Twitter API for updates. + placeHolder:"twitter", // Set a place holder DIV which will receive the list of tweets example <div id="juitterContainer"></div> loadMSG: "Loading messages...", // Loading message, if you want to show an image, fill it with "image/gif" and go to the next variable to set which image you want to use on imgName: "loader.gif", // Loading image, to enable it, go to the loadMSG var above and change it to "image/gif" - total: 20, // number of tweets to be show - max 100 + total: 10, // number of tweets to be show - max 100 readMore: "Read it on Twitter", // read more message to be show after the tweet content - nameUser:"image", // insert "image" to show avatar of "text" to show the name of the user that sent the tweet + nameUser:"h3rald", // insert "image" to show avatar of "text" to show the name of the user that sent the tweet openExternalLinks:"newWindow", // here you can choose how to open link to external websites, "newWindow" or "sameWindow" filter:"" // insert the words you want to hide from the tweets followed by what you want to show instead example: "sex->censured" or "porn->BLOCKED WORD" you can define as many as you want, if you don't want to replace the word, simply remove it, just add the words you want separated like this "porn,sex,fuck"... Be aware that the tweets will still be showed, only the bad words will be removed }); - $("#aRodrigo").click(function(){ - $(".jLinks").removeClass("on"); - $(this).addClass("on"); - $.Juitter.start({ - searchType:"fromUser", - searchObject:"mrjuitter,rodrigofante", - live:"live-120" // it will be updated every 120 seconds/2 minutes - }); - }); - $("#aIphone").click(function(){ - $(".jLinks").removeClass("on"); - $(this).addClass("on"); - $.Juitter.start({ - searchType:"searchWord", - searchObject:"iPhone,apple,ipod", - live:"live-20" // it will be update every 20 seconds - }); - }); - $("#aJuitter").click(function(){ - $(".jLinks").removeClass("on"); - $(this).addClass("on"); - $.Juitter.start({ - searchType:"searchWord", - searchObject:"Juitter", - live:"live-180" // it will be updated every 180 seconds/3 minutes - }); - }); - $("#juitterSearch").submit(function(){ - - - - $.Juitter.start({ - - searchType:"searchWord", - - searchObject:$(".juitterSearch").val(), - live:"live-20", // it will be updated every 180 seconds/3 minutes - filter:"sex->*BAD word*,porn->*BAD word*,fuck->*BAD word*,shit->*BAD word*" - }); - return false; - - }); - $(".juitterSearch").blur(function(){ - if($(this).val()=="") $(this).val("Type a word and press enter"); - }); - $(".juitterSearch").click(function(){ - if($(this).val()=="Type a word and press enter") $(this).val(""); - }); - - });
A ui-dev/js/jquery.localscroll-min.js

@@ -0,0 +1,9 @@

+/** + * jQuery.LocalScroll - Animated scrolling navigation, using anchors. + * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com + * Dual licensed under MIT and GPL. + * Date: 3/11/2009 + * @author Ariel Flesler + * @version 1.2.7 + **/ +;(function($){var l=location.href.replace(/#.*/,'');var g=$.localScroll=function(a){$('body').localScroll(a)};g.defaults={duration:1e3,axis:'y',event:'click',stop:true,target:window,reset:true};g.hash=function(a){if(location.hash){a=$.extend({},g.defaults,a);a.hash=false;if(a.reset){var e=a.duration;delete a.duration;$(a.target).scrollTo(0,a);a.duration=e}i(0,location,a)}};$.fn.localScroll=function(b){b=$.extend({},g.defaults,b);return b.lazy?this.bind(b.event,function(a){var e=$([a.target,a.target.parentNode]).filter(d)[0];if(e)i(a,e,b)}):this.find('a,area').filter(d).bind(b.event,function(a){i(a,this,b)}).end().end();function d(){return!!this.href&&!!this.hash&&this.href.replace(this.hash,'')==l&&(!b.filter||$(this).is(b.filter))}};function i(a,e,b){var d=e.hash.slice(1),f=document.getElementById(d)||document.getElementsByName(d)[0];if(!f)return;if(a)a.preventDefault();var h=$(b.target);if(b.lock&&h.is(':animated')||b.onBefore&&b.onBefore.call(b,a,f,h)===false)return;if(b.stop)h.stop(true);if(b.hash){var j=f.id==d?'id':'name',k=$('<a> </a>').attr(j,d).css({position:'absolute',top:$(window).scrollTop(),left:$(window).scrollLeft()});f[j]='';$('body').prepend(k);location=e.hash;k.remove();f[j]=d}h.scrollTo(f,b).trigger('notify.serialScroll',[f])}})(jQuery);
A ui-dev/js/jquery.scrollTo-min.js

@@ -0,0 +1,11 @@

+/** + * jQuery.ScrollTo - Easy element scrolling using jQuery. + * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com + * Dual licensed under MIT and GPL. + * Date: 3/9/2009 + * @author Ariel Flesler + * @version 1.4.1 + * + * http://flesler.blogspot.com/2007/10/jqueryscrollto.html + */ +;(function($){var m=$.scrollTo=function(b,h,f){$(window).scrollTo(b,h,f)};m.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1};m.window=function(b){return $(window).scrollable()};$.fn.scrollable=function(){return this.map(function(){var b=this,h=!b.nodeName||$.inArray(b.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!h)return b;var f=(b.contentWindow||b).document||b.ownerDocument||b;return $.browser.safari||f.compatMode=='BackCompat'?f.body:f.documentElement})};$.fn.scrollTo=function(l,j,a){if(typeof j=='object'){a=j;j=0}if(typeof a=='function')a={onAfter:a};if(l=='max')l=9e9;a=$.extend({},m.defaults,a);j=j||a.speed||a.duration;a.queue=a.queue&&a.axis.length>1;if(a.queue)j/=2;a.offset=n(a.offset);a.over=n(a.over);return this.scrollable().each(function(){var k=this,o=$(k),d=l,p,g={},q=o.is('html,body');switch(typeof d){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px)?$/.test(d)){d=n(d);break}d=$(d,this);case'object':if(d.is||d.style)p=(d=$(d)).offset()}$.each(a.axis.split(''),function(b,h){var f=h=='x'?'Left':'Top',i=f.toLowerCase(),c='scroll'+f,r=k[c],s=h=='x'?'Width':'Height';if(p){g[c]=p[i]+(q?0:r-o.offset()[i]);if(a.margin){g[c]-=parseInt(d.css('margin'+f))||0;g[c]-=parseInt(d.css('border'+f+'Width'))||0}g[c]+=a.offset[i]||0;if(a.over[i])g[c]+=d[s.toLowerCase()]()*a.over[i]}else g[c]=d[i];if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],u(s));if(!b&&a.queue){if(r!=g[c])t(a.onAfterFirst);delete g[c]}});t(a.onAfter);function t(b){o.animate(g,j,a.easing,b&&function(){b.call(this,l,a)})};function u(b){var h='scroll'+b;if(!q)return k[h];var f='client'+b,i=k.ownerDocument.documentElement,c=k.ownerDocument.body;return Math.max(i[h],c[h])-Math.min(i[f],c[f])}}).end()};function n(b){return typeof b=='object'?b:{top:b,left:b}}})(jQuery);
A ui-dev/js/jquery.serialScroll-min.js

@@ -0,0 +1,10 @@

+/* + * jQuery.SerialScroll - Animated scrolling of series + * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com + * Dual licensed under MIT and GPL. + * Date: 06/14/2009 + * @author Ariel Flesler + * @version 1.2.2 + * http://flesler.blogspot.com/2008/02/jqueryserialscroll.html + */ +;(function(a){var b=a.serialScroll=function(c){return a(window).serialScroll(c)};b.defaults={duration:1e3,axis:"x",event:"click",start:0,step:1,lock:!0,cycle:!0,constant:!0};a.fn.serialScroll=function(c){return this.each(function(){var t=a.extend({},b.defaults,c),s=t.event,i=t.step,r=t.lazy,e=t.target?this:document,u=a(t.target||this,e),p=u[0],m=t.items,h=t.start,g=t.interval,k=t.navigation,l;if(!r){m=d()}if(t.force){f({},h)}a(t.prev||[],e).bind(s,-i,q);a(t.next||[],e).bind(s,i,q);if(!p.ssbound){u.bind("prev.serialScroll",-i,q).bind("next.serialScroll",i,q).bind("goto.serialScroll",f)}if(g){u.bind("start.serialScroll",function(v){if(!g){o();g=!0;n()}}).bind("stop.serialScroll",function(){o();g=!1})}u.bind("notify.serialScroll",function(x,w){var v=j(w);if(v>-1){h=v}});p.ssbound=!0;if(t.jump){(r?u:d()).bind(s,function(v){f(v,j(v.target))})}if(k){k=a(k,e).bind(s,function(v){v.data=Math.round(d().length/k.length)*k.index(this);f(v,this)})}function q(v){v.data+=h;f(v,this)}function f(B,z){if(!isNaN(z)){B.data=z;z=p}var C=B.data,v,D=B.type,A=t.exclude?d().slice(0,-t.exclude):d(),y=A.length,w=A[C],x=t.duration;if(D){B.preventDefault()}if(g){o();l=setTimeout(n,t.interval)}if(!w){v=C<0?0:y-1;if(h!=v){C=v}else{if(!t.cycle){return}else{C=y-v-1}}w=A[C]}if(!w||t.lock&&u.is(":animated")||D&&t.onBefore&&t.onBefore(B,w,u,d(),C)===!1){return}if(t.stop){u.queue("fx",[]).stop()}if(t.constant){x=Math.abs(x/i*(h-C))}u.scrollTo(w,x,t).trigger("notify.serialScroll",[C])}function n(){u.trigger("next.serialScroll")}function o(){clearTimeout(l)}function d(){return a(m,p)}function j(w){if(!isNaN(w)){return w}var x=d(),v;while((v=x.index(w))==-1&&w!=p){w=w.parentNode}return v}})}})(jQuery);
A ui-dev/js/jquery.timeago.js

@@ -0,0 +1,125 @@

+/* + * timeago: a jQuery plugin, version: 0.7.1 (2009-02-18) + * @requires jQuery v1.2 or later + * + * Timeago is a jQuery plugin that makes it easy to support automatically + * updating fuzzy timestamps (e.g. "4 minutes ago" or "about 1 day ago"). + * + * For usage and examples, visit: + * http://timeago.yarp.com/ + * + * Licensed under the MIT: + * http://www.opensource.org/licenses/mit-license.php + * + * Copyright (c) 2008-2009, Ryan McGeary (ryanonjavascript -[at]- mcgeary [*dot*] org) + */ +(function($) { + $.timeago = function(timestamp) { + if (timestamp instanceof Date) return inWords(timestamp); + else if (typeof timestamp == "string") return inWords($.timeago.parse(timestamp)); + else return inWords($.timeago.parse($(timestamp).attr("title"))); + }; + var $t = $.timeago; + + $.extend($.timeago, { + settings: { + refreshMillis: 60000, + allowFuture: false, + strings: { + prefixAgo: null, + prefixFromNow: null, + suffixAgo: "ago", + suffixFromNow: "from now", + ago: null, // DEPRECATED, use suffixAgo + fromNow: null, // DEPRECATED, use suffixFromNow + seconds: "less than a minute", + minute: "about a minute", + minutes: "%d minutes", + hour: "about an hour", + hours: "about %d hours", + day: "a day", + days: "%d days", + month: "about a month", + months: "%d months", + year: "about a year", + years: "%d years" + } + }, + inWords: function(distanceMillis) { + var $l = this.settings.strings; + var prefix = $l.prefixAgo; + var suffix = $l.suffixAgo || $l.ago; + if (this.settings.allowFuture) { + if (distanceMillis < 0) { + prefix = $l.prefixFromNow; + suffix = $l.suffixFromNow || $l.fromNow; + } + distanceMillis = Math.abs(distanceMillis); + } + + var seconds = distanceMillis / 1000; + var minutes = seconds / 60; + var hours = minutes / 60; + var days = hours / 24; + var years = days / 365; + + var words = seconds < 45 && substitute($l.seconds, Math.round(seconds)) || + seconds < 90 && substitute($l.minute, 1) || + minutes < 45 && substitute($l.minutes, Math.round(minutes)) || + minutes < 90 && substitute($l.hour, 1) || + hours < 24 && substitute($l.hours, Math.round(hours)) || + hours < 48 && substitute($l.day, 1) || + days < 30 && substitute($l.days, Math.floor(days)) || + days < 60 && substitute($l.month, 1) || + days < 365 && substitute($l.months, Math.floor(days / 30)) || + years < 2 && substitute($l.year, 1) || + substitute($l.years, Math.floor(years)); + + return $.trim([prefix, words, suffix].join(" ")); + }, + parse: function(iso8601) { + var s = $.trim(iso8601); + s = s.replace(/-/,"/").replace(/-/,"/"); + s = s.replace(/\d(T)\d/," ").replace(/Z/," UTC"); + s = s.replace(/([\+-]\d\d)\:?(\d\d)/," $1$2"); // -04:00 -> -0400 + return new Date(s); + } + }); + + $.fn.timeago = function() { + var self = this; + self.each(refresh); + + var $s = $t.settings; + if ($s.refreshMillis > 0) { + setInterval(function() { self.each(refresh); }, $s.refreshMillis); + } + return self; + }; + + function refresh() { + var date = $t.parse(this.title); + if (!isNaN(date)) { + $(this).text(inWords(date)); + } + return this; + } + + function inWords(date) { + return $t.inWords(distance(date)); + } + + function distance(date) { + return (new Date().getTime() - date.getTime()); + } + + function substitute(stringOrFunction, value) { + var string = $.isFunction(stringOrFunction) ? stringOrFunction(value) : stringOrFunction; + return string.replace(/%d/i, value); + } + + // fix for IE6 suckage + if ($.browser.msie && $.browser.version < 7.0) { + document.createElement('abbr'); + } +})(jQuery);
A ui-dev/js/slider.js

@@ -0,0 +1,109 @@

+// Thanks http://jqueryfordesigners.com/coda-slider-effect/ +(function(){ + $.slider = function(){ + var $panels = $('#slider .scrollContainer > div'); + var $container = $('#slider .scrollContainer'); + + // if false, we'll float all the panels left and fix the width + // of the container + var horizontal = true; + + // float the panels left if we're going horizontal + if (horizontal) { + $panels.css({ + 'float' : 'left', + 'position' : 'relative' // IE fix to ensure overflow is hidden + }); + + // calculate a new width for the container (so it holds all panels) + $container.css('width', $panels[0].offsetWidth * $panels.length); + } + + // collect the scroll object, at the same time apply the hidden overflow + // to remove the default scrollbars that will appear + var $scroll = $('#slider .scroll').css('overflow', 'hidden'); + + // apply our left + right buttons + $scroll + .before('<img class="scrollButtons left" src="images/scroll_left.png" />') + .after('<img class="scrollButtons right" src="images/scroll_right.png" />'); + + // handle nav selection + function selectNav() { + $(this) + .parents('ul:first') + .find('a') + .removeClass('selected') + .end() + .end() + .addClass('selected'); + } + + $('#slider .navigation').find('a').click(selectNav); + + // go find the navigation link that has this target and select the nav + function trigger(data) { + var el = $('#slider .navigation').find('a[href$="' + data.id + '"]').get(0); + selectNav.call(el); + } + + if (window.location.hash) { + trigger({ id : window.location.hash.substr(1) }); + } else { + $('ul.navigation a:first').click(); + } + + // offset is used to move to *exactly* the right place, since I'm using + // padding on my example, I need to subtract the amount of padding to + // the offset. Try removing this to get a good idea of the effect + var offset = parseInt((horizontal ? + $container.css('paddingTop') : + $container.css('paddingLeft')) + || 0) * -1; + + + var scrollOptions = { +target: $scroll, // the element that has the overflow + + // can be a selector which will be relative to the target + items: $panels, + + navigation: '.navigation a', + + // selectors are NOT relative to document, i.e. make sure they're unique + prev: 'img.left', + next: 'img.right', + + // allow the scroll effect to run both directions + axis: 'xy', + + onAfter: trigger, // our final callback + + offset: offset, + + // duration of the sliding effect + duration: 500, + + // easing - can be used with the easing plugin: + // http://gsgd.co.uk/sandbox/jquery/easing/ + easing: 'swing' + }; + + // apply serialScroll to the slider - we chose this plugin because it + // supports// the indexed next and previous scroll along with hooking + // in to our navigation. + $('#slider').serialScroll(scrollOptions); + + // now apply localScroll to hook any other arbitrary links to trigger + // the effect + $.localScroll(scrollOptions); + + // finally, if the URL has a hash, move the slider in to position, + // setting the duration to 1 because I don't want it to scroll in the + // very first page load. We don't always need this, but it ensures + // the positioning is absolutely spot on when the pages loads. + scrollOptions.duration = 1; + $.localScroll.hash(scrollOptions); + } +})(jQuery); +